skip to main content
research-article
Free Access

Nomadic pict: Programming languages, communication infrastructure overlays, and semantics for mobile computation

Published:22 April 2010Publication History
Skip Abstract Section

Abstract

Mobile computation, in which executing computations can move from one physical computing device to another, is a recurring theme: from OS process migration, to language-level mobility, to virtual machine migration. This article reports on the design, implementation, and verification of overlay networks to support reliable communication between migrating computations, in the Nomadic Pict project. We define two levels of abstraction as calculi with precise semantics: a low-level Nomadic π calculus with migration and location-dependent communication, and a high-level calculus that adds location-independent communication. Implementations of location-independent communication, as overlay networks that track migrations and forward messages, can be expressed as translations of the high-level calculus into the low. We discuss the design space of such overlay network algorithms and define three precisely, as such translations. Based on the calculi, we design and implement the Nomadic Pict distributed programming language, to let such algorithms (and simple applications above them) to be quickly prototyped. We go on to develop the semantic theory of the Nomadic π calculi, proving correctness of one example overlay network. This requires novel equivalences and congruence results that take migration into account, and reasoning principles for agents that are temporarily immobile (e.g., waiting on a lock elsewhere in the system). The whole stands as a demonstration of the use of principled semantics to address challenging system design problems.

Skip Supplemental Material Section

Supplemental Material

References

  1. Amadio, R. M. 1997. An asynchronous model of locality, failure, and process mobility. In Proceedings of the 2nd International Conference on Coordination Languages and Models (COORDINATION'97). Lecture Notes in Computer Science, vol. 1282. Springer, 374--391. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Amadio, R. M. and Prasad, S. 1994. Localities and failures (extended abstract). In Proceedings of the 14th Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS'94). Lecture Notes in Computer Science, vol. 880. Springer, 205--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Appel, A. W. 1992. Compiling with Continuations. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Arnold, K., Wollrath, A., O'Sullivan, B., Scheifler, R., and Waldo, J. 1999. The Jini Specification. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Awerbuch, B. and Peleg, D. 1995. Online tracking of mobile users. J. ACM 42, 5, 1021--1058. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ballintijn, G., van Steen, M., and Tanenbaum, A. 1999. Simple crash recovery in a wide-area location service. In Proceedings of the 11th IASTED International Conference on Parallel and Distributed Computing Systems (PDCS'99). IASTED, 87--93.Google ScholarGoogle Scholar
  7. Billings, J., Sewell, P., Shinwell, M., and Strnisa, R. 2006. Type-Safe distributed programming for OCaml. In Proceedings of the ACM SIGPLAN Workshop on ML (ML'06). ACM, New York, 20--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bishop, S., Fairbairn, M., Norrish, M., Sewell, P., Smith, M., and Wansbrough, K. 2005. Rigorous specification and conformance testing techniques for network protocols, as applied to TCP, UDP, and sockets. In Proceedings of the ACM SIGCOMM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM'05). ACM, New York, 265--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Bishop, S., Fairbairn, M., Norrish, M., Sewell, P., Smith, M., and Wansbrough, K. 2006. Engineering with logic: HOL specification and symbolic-evaluation testing for TCP implementations. In Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'06). ACM, New York, 55--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cardelli, L. 1995. A language with distributed scope. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'95). ACM, New York, 286--297. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cardelli, L. 1999. Abstractions for mobile computation. In Secure Internet Programming: Security Issues for Mobile and Distributed Objects. Lecture Notes in Computer Science, vol. 1603, J. Vitek and C. D. Jensen, Eds. State-of-the-Art Survey. Springer, 51--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Cardelli, L., Ghelli, G., and Gordon, A. D. 2000. Ambient groups and mobility types. In Proceedings of the 16th IFIP International Conference on Theoretical Computer Science, Exploring New Frontiers of Theoretical Informatics (TCS'00). Lecture Notes in Computer Science, vol. 1872. Springer, 333--347. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cardelli, L. and Gordon, A. D. 1998. Mobile ambients. In Proceedings of the 1st International Conference on Foundations of Software Science and Computation Structure (FoSSaCS'98). Lecture Notes in Computer Science, vol. 1378. Springer, 140--155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cardelli, L., Gordon, A. D., and Ghelli, G. 1999. Mobility types for mobile ambients. In Proceedings of the 26th International Colloquium on Automata, Languages and Programming (ICALP'99). Lecture Notes in Computer Science, vol. 1644. Springer, 230--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Castagna, G. and Vitek, J. 1999. Commitment and confinement for the Seal calculus. Trusted objects, Centre Universitaire d'Informatique, University of Geneva.Google ScholarGoogle Scholar
  16. Castagna, G., Vitek, J., and Zappa Nardelli, F. 2005. The Seal calculus. Inform. Comput. 201, 1, 1--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Cejtin, H., Jagannathan, S., and Kelsey, R. 1995. Higher-Order distributed objects. ACM Trans. Program. Lang. Syst. 17, 5, 704--739. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Chandra, T. D. and Toueg, S. 1996. Unreliable failure detectors for reliable distributed systems. J. ACM 43, 2, 225--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Cheriton, D. 1988. The V distributed system. Comm. ACM 31, 3, 314--333. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Clark, C., Fraser, K., Hand, S., Hansen, J. G., Jul, E., Limpach, C., Pratt, I., and Warfield, A. 2005. Live migration of virtual machines. In Proceedings of the 2nd USENIX/ACM Symposium on Networked Systems Design and Implementation (NSDI'05). 273--286. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Compton, M. 2005. Stenning's protocol implemented in UDP and verified in Isabelle. In Proceedings of the Australasian Symposium on Theory of Computing (CATS'05). Australian Computer Society, Darlinghurst, Australia, 21--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Conchon, S. and Le Fessant, F. 1999. Jocaml: Mobile agents for Objective-Caml. In Proceedings of the 1st International Symposium on Agent Systems and Applications/3rd International Symposium on Mobile Agents (ASA/MA'99). IEEE Computer Society, 22--29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. de Nicola, R. and Hennessy, M. C. B. 1984. Testing equivalences for processes. Theor. Comput. Sci. 34, 1-2, 83--133.Google ScholarGoogle ScholarCross RefCross Ref
  24. Demmer, M. J. and Herlihy, M. P. 1998. The arrow distributed directory protocol. In Proceedings of the 12th International Symposium on Distributed Computing (DISC'98). Lecture Notes in Computer Science, vol. 1499. Springer, 119--133. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Deniélou, P.-M. and Leifer, J. J. 2006. Abstraction preservation and subtyping in distributed languages. In Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming (ICFP'06). ACM, New York, 286--297. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Douglis, F. and Ousterhout, J. 1991. Transparent process migration: Design alternatives and the Sprite implementation. Softw. Pract. Exper. 21, 8, 757--785. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Fischer, M. J., Lynch, N. A., and Paterson, M. S. 1985. Impossibility of distributed consensus with one faulty processor. J. ACM 32, 2, 374--382. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Fournet, C. and Gonthier, G. 1996. The reflexive CHAM and the join-calculus. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'96). ACM Press, New York, 372--385. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Fournet, C., Gonthier, G., Lévy, J.-J., Maranget, L., and Rémy, D. 1996. A calculus of mobile agents. In Proceedings of the 7th International Conference on Concurrency Theory (CONCUR'96). Lecture Notes in Computer Science, vol. 1119. Springer, 406--421. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Fournet, C., Lévy, J.-J., and Schmitt, A. 2000. An asynchronous, distributed implementation of mobile ambients. In Proceedings of the 16th IFIP International Conference on Theoretical Computer Science, Exploring New Frontiers of Theoretical Informatics (TCS'00). Lecture Notes in Computer Science, vol. 1872. Springer, 348--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Giannini, P., Sangiorgi, D., and Valente, A. 2006. Safe Ambients: Abstract machine and distributed implementation. Sci. Comput. Program. 59, 3, 209--249. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Gordon, A. D. and Cardelli, L. 1999. Equational properties of mobile ambients. In Proceedings of the 2nd International Conference on Foundations of Software Science and Computation Structure (FoSSaCS'99). Lecture Notes in Computer Science, vol. 1578. Springer, 212--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Guerraoui, R. and Schiper, A. 1996. Fault-Tolerance by replication in distributed systems. In Proceedings of the Ada-Europe International Conference on Reliable Software Technologies (Ada-Europe'96). Lecture Notes in Computer Science, vol. 1088. Springer, 38--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Hennessy, M. 2007. A Distributed Pi-Calculus. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Hirschkoff, D., Pous, D., and Sangiorgi, D. 2007. An efficient abstract machine for Safe Ambients. J. Logic Algebr. Program. 71, 2, 114--149.Google ScholarGoogle ScholarCross RefCross Ref
  36. Igarashi, A. and Kobayashi, N. 2001. A generic type system for the pi-calculus. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'01). ACM, New York, 128--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Jim, T. 2001. SD3: A trust management system with certified evaluation. In Proceedings of the IEEE Symposium on Security and Privacy (SP'01). IEEE Computer Society, 106--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Jul, E., Levy, H., Hutchinson, N., and Black, A. 1988. Fine-Grained mobility in the Emerald system. ACM Trans. Comput. Syst. 6, 1, 109--133. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Kobayashi, N., Pierce, B. C., and Turner, D. N. 1996. Linearity and the pi-calculus. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'96). ACM, New York, 358--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Lange, D. B. and Aridor, Y. 1997. Agent Transfer Protocol—ATP/0.1. IBM Tokyo Research Laboratory.Google ScholarGoogle Scholar
  41. Leifer, J. J., Peskine, G., Sewell, P., and Wansbrough, K. 2003. Global abstraction-safe marshalling with hash types. In Proceedings of the 8th ACM SIGPLAN International Conference on Functional Programming (ICFP'03). ACM, New York, 87--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Leroy, X. 1995. Le système Caml Special Light: Modules et compilation efficace en Caml. Tech. rep. RR-2721, INRIA, Institut National de Recherche en Informatique et en Automatique.Google ScholarGoogle Scholar
  43. Levi, F. and Sangiorgi, D. 2000. Controlling interference in Ambients. In Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'00). ACM, New York, 352--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Loo, B. T., Condie, T., Hellerstein, J. M., Maniatis, P., Roscoe, T., and Stoica, I. 2005. Implementing declarative overlays. ACM SIGOPS Oper. Syst. Rev. 39 5, 75--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. McCann, P. J. and Roman, G.-C. 1997. Mobile UNITY coordination constructs applied to packet forwarding for mobile hosts. In Proceedings of the 2nd International Conference on Coordination Languages and Models (COORDINATION'97). Lecture Notes in Computer Science, vol. 1282. Springer, 338--354. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Merro, M. and Zappa Nardelli, F. 2005. Behavioral theory for mobile ambients. J. ACM 52, 6, 961--1023. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Milner, R. 1989. Communication and Concurrency. International Series in Computer Science. Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Milner, R. 1992. Functions as processes. J. Math. Struct. Comput. Sci. 2, 2, 119--141.Google ScholarGoogle ScholarCross RefCross Ref
  49. Milner, R. 1993. The polyadic π-calculus: A tutorial. In Logic and Algebra of Specification, F. L. Bauer, W. Brauer, and H. Schwichtenberg, Eds. Series F: Computer and System Sciences, vol. 94. NATO Advanced Study Institute, Springer.Google ScholarGoogle Scholar
  50. Milner, R., Parrow, J., and Walker, D. 1992. A calculus of mobile processes, Parts I and II. Inform. Comput. 100, 1, 1--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Milner, R., Tofte, M., Harper, R., and MacQueen, D. 1997. The Definition of Standard ML (revised). The MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Miloji&cbreve;ić, D., Douglis, F., and Wheeler, R., Eds. 1999. Mobility: Processes, Computers, and Agents. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Moreau, L. 2001. Distributed directory service and message router for mobile agents. Sci. Comput. Program. 39, 2-3, 249--272. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Moreau, L. 2002. A fault-tolerant directory service for mobile agents based on forwarding pointers. In Proceedings of the 17th ACM Symposium on Applied Computing (SAC'02). ACM, New York, 93--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Mullender, S. J. and Vitányi, P. M. B. 1988. Distributed match-making. Algorithmica 3, 367--391.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Murphy, VII, T. 2008. Modal types for mobile code. Ph.D. thesis, Tech. rep. CMU-CS-08-126, Carnegie Mellon University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Needham, R. M. 1989. Names. In Distributed Systems, S. Mullender, Ed. Addison-Wesley, 89--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Nestmann, U. 1996. On determinacy and nondeterminacy in concurrent programming. Ph.D. thesis, Technische Fakultät, Universität Erlangen.Google ScholarGoogle Scholar
  59. Nestmann, U. and Pierce, B. C. 1996. Decoding choice encodings. In Proceedings of the 7th International Conference on Concurrency Theory (CONCUR'96). Lecture Notes in Computer Science, vol. 1119. Springer, 179--194. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Nielson, F., Ed. 1997. ML with Concurrency: Design, Analysis, Implementation, and Application. Monographs in Computer Science. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Palamidessi, C. 1997. Comparing the expressive power of the synchronous and the asynchronous π-calculus. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'97). ACM, New York, 256--265. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Parrow, J. and Sjödin, P. 1992. Multiway synchronization verified with coupled simulation. In Proceedings of the 3rd International Conference on Concurrency Theory (CONCUR'92). Lecture Notes in Computer Science, vol. 630. Springer, 518--533. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Pierce, B. C. and Sangiorgi, D. 1996. Typing and subtyping for mobile processes. Math. Struct. Comput. Sci. 6, 5, 409--454.Google ScholarGoogle ScholarCross RefCross Ref
  64. Pierce, B. C. and Sangiorgi, D. 1997. Behavioral equivalence in the polymorphic pi-calculus. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'97). ACM, New York, 242--255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Pierce, B. C. and Turner, D. N. 1995. Concurrent objects in a process calculus. In Theory and Practice of Parallel Programming: Proceedings of the International Workshop (TPPP'94), T. Ito and A. Yonezawa, Eds. Lecture Notes in Computer Science, vol. 907. Springer, 187--215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Pierce, B. C. and Turner, D. N. 1997. Pict Language Definition. Available electronically as part of the Pict distribution. www.cis.upenn.edu/~bcpirce/papers/pict/Html/Pict.html. (3/28/10).Google ScholarGoogle Scholar
  67. Pierce, B. C. and Turner, D. N. 2000. Pict: A programming language based on the pi-calculus. In Proof, Language and Interaction: Essays in Honour of Robin Milner, G. Plotkin, C. Stirling, and M. Tofte, Eds. Foundations of Computing. MIT Press, 455--494. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Popek, G. J. and Walker, B. J. 1986. The LOCUS Distributed System Architecture. Computer Systems Series. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Ridge, T. 2009. Verifying distributed systems: The operational approach. In Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Langauges (POPL'09). ACM, New York, 429--440. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Ridge, T., Norrish, M., and Sewell, P. 2008. A rigorous approach to networking: TCP, from implementation to protocol to service. In Proceedings of the 15th International Symposium on Formal Methods (FM'08). Lecture Notes in Computer Science, vol. 5014. Springer, 294--309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Riely, J. and Hennessy, M. 1997. Distributed processes and location failures (extended abstract). In Proceedings of the 24th International Colloquium on Automata, Languages and Programming (ICALP'97). Lecture Notes in Computer Science, vol. 1256. Springer, 471--481. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Riely, J. and Hennessy, M. 1998. A typed language for distributed mobile processes (extended abstract). In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'98). ACM, New York, 378--390. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Riely, J. and Hennessy, M. 1999. Trust and partial typing in open systems of mobile agents. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'99). ACM, New York, 93--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Sangiorgi, D. 1999. The name discipline of uniform receptiveness. Theor. Comput. Sci. 221, 1-2, 457--493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Sangiorgi, D. and Milner, R. 1992. The problem of “weak bisimulation up to”. In Proceedings of the 3rd International Conference on Concurrency Theory (CONCUR'92). Lecture Notes in Computer Science, vol. 630. Springer, 32--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Serjantov, A., Sewell, P., and Wansbrough, K. 2001. The UDP calculus: Rigorous semantics for real networking. In Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software (TACS'01). Lecture Notes in Computer Science, vol. 2215. Springer, 535--559. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Sewell, P. 1997. On implementations and semantics of a concurrent programming language. In Proceedings of the 8th International Conference on Concurrency Theory (CONCUR'97). Lecture Notes in Computer Science, vol. 1243. Springer, 391--405. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Sewell, P. 1998. Global/Local subtyping and capability inference for a distributed pi-calculus. In Proceedings of the 25th International Colloquium on Automata, Languages and Programming (ICALP'98). Lecture Notes in Computer Science, vol. 1443. Springer, 695--706. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Sewell, P. 2000. A brief introduction to applied π. Tech. rep. 498, Computer Laboratory, University of Cambridge, Cambridge, UK.Google ScholarGoogle Scholar
  80. Sewell, P. 2001. Modules, abstract types, and distributed versioning. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'01). ACM, New York, 236--247. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Sewell, P., Leifer, J. J., Wansbrough, K., Zappa Nardelli, F., Allen-Williams, M., Habouzit, P., and Vafeiadis, V. 2005. Acute: High-Level programming language design for distributed computation. In Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming (ICFP'05). ACM, New York, 15--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Sewell, P., Leifer, J. J., Wansbrough, K., Zappa Nardelli, F., Allen-Williams, M., Habouzit, P., and Vafeiadis, V. 2007. Acute: High-level programming language design for distributed computation. J. Funct. Program. 17, 4-5, 547--612. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Sewell, P. and Vitek, J. 2003. Secure composition of untrusted code: Box-π, wrappers and causality types. J. Comput. Secur. 11, 2, 135--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Sewell, P. and Wojciechowski, P. T. 2008. Verifying overlay networks for relocatable computations (or: Nomadic Pict, relocated). In Proceedings of the Joint HP-MSR Research Workshop on The Rise and Rise of the Declarative Datacentre. http://research.microsoft.com/riseandrise (2/13/10).Google ScholarGoogle Scholar
  85. Sewell, P., Wojciechowski, P. T., and Pierce, B. C. 1998. Location independence for mobile agents. In Proceedings of the Workshop on Internet Programming Languages (IFL'98), in conjunction with IEEE ICCL'98. 1--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. Sewell, P., Wojciechowski, P. T., and Pierce, B. C. 1999. Location-Independent communication for mobile agents: A two-level architecture. Internet Programming Languages. Lecture Notes in Computer Science, vol. 1686. Springer, 1--31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. Thomsen, B., Leth, L., and Kuo, T.-M. 1996. A Facile tutorial. In Proceedings of the 7th International Conference on Concurrency Theory (CONCUR'96). Lecture Notes in Computer Science, vol. 1119. Springer, 278--298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. Turner, D. N. 1996. The polymorphic pi-calculus: Theory and implementation. Ph.D. thesis, University of Edinburgh.Google ScholarGoogle Scholar
  89. Unyapoth, A. 2001. Nomadic π-calculi: Expressing and verifying communication infrastructure for mobile computation. Ph.D. thesis, University of Cambridge. Also Tech. rep. UCAM-CL-TR-514, Computer Laboratory, University of Cambridge.Google ScholarGoogle Scholar
  90. Unyapoth, A. and Sewell, P. 2001. Nomadic Pict: Correct communication infrastructure for mobile computation. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'01). ACM, New York, 116--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Van Roy, P. and Haridi, S. 2004. Concepts, Techniques, and Models of Computer Programming. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. van Steen, M., Hauck, F. J., Ballintijn, G., and Tanenbaum, A. S. 1998. Algorithmic design of the Globe wide-area location service. Comput. J. 41, 5, 297--310.Google ScholarGoogle ScholarCross RefCross Ref
  93. Vasconcelos, V. T., Lopes, L., and Silva, F. 1998. Distribution and mobility with lexical scoping in process calculi. In Proceedings of the 3rd International Workshop on High-Level Concurrent Languages (HLCL'98). Electronic Notes in Theoretical Computer Science, vol. 16.3. Elsevier Science Publishers.Google ScholarGoogle Scholar
  94. Vitek, J. and Castagna, G. 1998. Towards a calculus of secure mobile computations. In Proceedings of the Workshop on Internet Programming Languages, in Conjunction with IEEE ICCL'98.Google ScholarGoogle Scholar
  95. Walker, D. 1995. Objects in the π-calculus. Inform. Comput. 116, 2, 253--271. Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Wansbrough, K., Norrish, M., Sewell, P., and Serjantov, A. 2002. Timing UDP: Mechanized semantics for sockets, threads, and failures. In Proceedings of the 11th European Symposium on Programming Languages and Systems (ESOP'02). Lecture Notes in Computer Science, vol. 2305. Springer, 278--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Wojciechowski, P. T. 2000a. Nomadic Pict. Documentation and User's Manual. (2/13/10)Google ScholarGoogle Scholar
  98. Wojciechowski, P. T. 2000b. Nomadic Pict: Language and infrastructure design for mobile computation. Ph.D. thesis, University of Cambridge. Also Tech. rep. UCAM-CL-TR-492, Computer Laboratory, University of Cambridge.Google ScholarGoogle Scholar
  99. Wojciechowski, P. T. 2010. The Nomadic Pict System. http://www.cs.put.poznan.pl/pawelw/npict (2/13/10).Google ScholarGoogle Scholar
  100. Wojciechowski, P. T. 2001. Algorithms for location-independent communication between mobile agents. In Proceedings of the AISB Symposium on Software Mobility and Adaptive Behaviour.Google ScholarGoogle Scholar
  101. Wojciechowski, P. T. 2006. Scalable message routing for mobile software assistants. In Proceedings of the 4th IFIP International Conference on Embedded and Ubiquitous Computing (EUC'06). Lecture Notes in Computer Science, vol. 4096. Springer, 355--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Wojciechowski, P. T. and Sewell, P. 1999. Nomadic Pict: Language and infrastructure design for mobile agents. In Proceedings of the 1st International Symposium on Agent Systems and Applications/3rd International Symposium on Mobile Agents (ASA/MA'99). IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Wojciechowski, P. T. and Sewell, P. 2000. Nomadic Pict: Language and infrastructure design for mobile agents. IEEE Concurr. 8, 2, 42--52. The 1st International Symposium on Agent Systems and Applications/3rd International Symposium on Mobile Agents (ASA/MA'99). Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Yoshida, N. and Hennessy, M. 1999. Subtyping and locality in distributed higher order processes (extended abstract). In Proceedings of the 10th International Conference on Concurrency Theory (CONCUR'99). Lecture Notes in Computer Science, vol. 1664. Springer, 557--572. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Nomadic pict: Programming languages, communication infrastructure overlays, and semantics for mobile computation

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM Transactions on Programming Languages and Systems
                  ACM Transactions on Programming Languages and Systems  Volume 32, Issue 4
                  April 2010
                  230 pages
                  ISSN:0164-0925
                  EISSN:1558-4593
                  DOI:10.1145/1734206
                  Issue’s Table of Contents

                  Copyright © 2010 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 22 April 2010
                  • Accepted: 1 September 2009
                  • Revised: 1 June 2009
                  • Received: 1 December 2008
                  Published in toplas Volume 32, Issue 4

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article
                  • Research
                  • Refereed

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!