The Join Calculus: A Language for Distributed Mobile Programming
In these notes, we give an overview of the join calculus, its semantics, and its equational theory. The join calculus is a language that models distributed and mobile programming. It is characterized by an explicit notion of locality, a strict adherence to local synchronization, and a direct embedding of the ML programming language. The join calculus is used as the basis for several distributed languages and implementations, such as JoCaml and functional nets.
Local synchronization means that messages always travel to a set destination, and can interact only after they reach that destination; this is required for an efficient implementation. Specifically, the join calculus uses ML’s function bindings and pattern-matching on messages to program these synchronizations in a declarative manner.
Formally, the language owes much to concurrency theory, which provides a strong basis for stating and proving the properties of asynchronous programs. Because of several remarkable identities, the theory of process equivalences admits simplifications when applied to the join calculus. We prove several of these identities, and argue that equivalences for the join calculus can be rationally organized into a five-tiered hierarchy, with some trade-off between expressiveness and proof techniques.
We describe the mobility extensions of the core calculus, which allow the programming of agent creation and migration. We briefly present how the calculus has been extended to model distributed failures on the one hand, and cryptographic protocols on the other.
KeywordsMobile Agent Operational Semantic Parallel Composition Proof Technique Couple Simulation
Unable to display preview. Download preview PDF.
- 1.M. Abadi, C. Fournet, and G. Gonthier. Secure implementation of channel abstractions. In Proceedings of LICS’ 98, pages 105–116. IEEE, June 1998.Google Scholar
- 2.M. Abadi, C. Fournet, and G. Gonthier. Secure communications processing for distributed languages. In Proceedings of the 1999 IEEE Symposium on Security and Privacy, pages 74–88, May 1999.Google Scholar
- 3.M. Abadi, C. Fournet, and G. Gonthier. Authentication primitives and their compilation. In Proceedings of POPL’00, pages 302–315. ACM, Jan. 2000.Google Scholar
- 4.M. Abadi, C. Fournet, and G. Gonthier. Secure implementation of channel abstractions. Information and Computation, 2000. To appear. Manuscript available from http://research.microsoft.com/ fournet. Subsumes  and .Google Scholar
- 5.G. Agha, I. Mason, S. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7(1):1–72, Jan. 1997.Google Scholar
- 6.R. M. Amadio. An asynchronous model of locality, failure, and process mobility. In COORDINATION’97, volume 1282 of LNCS. Springer-Verlag, 1997.Google Scholar
- 8.R. M. Amadio and S. Prasad. Localities and failures. In P. Thiagarajan, editor, Proceedings of the 14th Foundations of Software Technology and Theoretical Computer Science Conference (FST-TCS’ 94), volume 880 of LNCS, pages 205–216. Springer-Verlag, 1994.Google Scholar
- 12.E. Brinksma, A. Rensink, and W. Vogler. Fair testing. In I. Lee and S. A. Smolka, editors, 6th International Conference on Concurrency Theory (CONCUR’95), volume 962 of LNCS, pages 313–327. Springer-Verlag, 1995.Google Scholar
- 13.E. Brinksma, A. Rensink, and W. Vogler. Applications of fair testing. In R. Gotzhein and J. Bredereke, editors, Formal Description Techniques IX: Theory, Applications and Tools, volume IX. Chapman and Hall, 1996.Google Scholar
- 14.L. Cardelli and A. Gordon. Mobile ambients. In Proceedings of FoSSaCS’98, volume 1378 of LNCS, pages 140–155. Springer-Verlag, 1998.Google Scholar
- 15.S. Conchon and F. Le Fessant. Jocaml: Mobile agents for objective-caml. In ASA/MA’99, pages 22–29. IEEE Computer Society, Oct. 1999.Google Scholar
- 17.C. Fournet and G. Gonthier. A hierarchy of equivalences for asynchronous calculi (extended abstract). In Larsen et al. S. Skyum, and G. Winskel, editors. Proceedings of the 25th International Colloquium on Automata, Languages and Programming (ICALP’ 98), volume 1443 of LNCS, Aalborg, Denmark, July 1998. Springer-Verlag , pages 844–855. Full paper available from http://research.microsoft.com/fournet.Google Scholar
- 18.C. Fournet and C. Laneve. Bisimulations in the join-calculus. To appear in TCS, available from http://research.microsoft.com/fournet, Oct. 2000.
- 19.C. Fournet, J.-J. Lévy, and A. Schmitt. An asynchronous, distributed implementation of mobile ambients. In J. van Leeuwen, O. Watanabe, M. Hagiya, P. Mosses, and T. Ito, editors, Proceedings of IFIP TCS 2000, volume 1872 of LNCS. IFIP TC1, Springer-Verlag, Aug. 2000. An extended report is available from http://research.microsoft.com/fournet.Google Scholar
- 20.C. Fournet and L. Maranget. The join-calculus language (version 1.03 beta). Source distribution and documentation available from http://join.inria.fr/, June 1997.
- 21.R. Glabbeek. The linear time—branching time spectrum II; the semantics of sequential systems with silent moves (extended abstract). In E. Best, editor, 4th International Conference on Concurrency Theory (CONCUR’93), volume 715 of LNCS, pages 66–81. Springer-Verlag, 1993.Google Scholar
- 22.M. Hennessy and J. Riely. A typed language for distributed mobile processes. In Proceedings of POPL’ 98, pages 378–390. ACM, Jan. 1998.Google Scholar
- 23.K. Honda and M. Tokoro. On asynchronous communication semantics. In P. Wegner, M. Tokoro, and O. Nierstrasz, editors, Proceedings of the ECOOP’91 Workshop on Object-Based Concurrent Computing, volume 612 of LNCS, pages 21–51. Springer-Verlag, 1992.Google Scholar
- 24.K. Honda and N. Yoshida. Combinatory representation of mobile processes. In Proceedings of POPL’ 94, pages 348–360, 1994.Google Scholar
- 26.E. Jul. Migration of light-weight processes in emerald. IEEE Operating Sys. Technical Committee Newsletter, Special Issue on Process Migration, 3(1):20, 1989.Google Scholar
- 27.E. Jul, H. Levy, N. Hutchinson, and A. Black. Fine-grained mobility in the emerald system. In Proceedings of the 11th ACM Symposium on Operating Systems Principles, pages 62–74, November 1987.Google Scholar
- 28.C. Laneve. May and must testing in the join-calculus. Technical Report UBLCS 96-04, University of Bologna, Mar. 1996. Revised: May 1996.Google Scholar
- 29.K. Larsen, S. Skyum, and G. Winskel, editors. Proceedings of the 25th International Colloquium on Automata, Languages and Programming (ICALP’ 98), volume 1443 of LNCS, Aalborg, Denmark, July 1998. Springer-Verlag.Google Scholar
- 30.F. Le Fessant. The JoCAML system prototype (beta). Software and documentation available from http://pauillac.inria.fr/jocaml, 1998.
- 31.F. Le Fessant and L. Maranget. Compiling join-patterns. In U. Nestmann and B. C. Pierce, editors, HLCL’ 98: High-Level Concurrent Languages, volume 16(3) of Electronic Notes in Theoretical Computer Science, Nice, France, Sept. 1998. Elsevier Science Publishers. To appear.Google Scholar
- 32.X. Leroy and al. The Objective CAML system 3.01. Software and documentation available from http://caml.inria.fr.
- 33.M. Merro and D. Sangiorgi. On asynchrony in name-passing calculi. In LarsenS. Skyum, and G. Winskel, editors. Proceedings of the 25th International Colloquium on Automata, Languages and Programming (ICALP’ 98), volume 1443 of LNCS, Aalborg, Denmark, July 1998. Springer-Verlag et al. , pages 856–867.Google Scholar
- 36.R. Milner. Communication and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge, 1999.Google Scholar
- 37.R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, parts I and II. Information and Computation, 100:1–40 and 41-77, Sept. 1992.Google Scholar
- 38.R. Milner and D. Sangiorgi. Barbed bisimulation. In W. Kuich, editor, Proceedings of ICALP’92, volume 623 of LNCS, pages 685–695. Springer-Verlag, 1992.Google Scholar
- 39.J. H. Morris, Jr. Lambda-Calculus Models of Programming Languages. Ph. D. dissertation, MIT, Dec. 1968. Report No. MAC-TR-57.Google Scholar
- 40.V. Natarajan and R. Cleaveland. Divergence and fair testing. In Proceedings of ICALP’ 95, volume 944 of LNCS. Springer-Verlag, 1995.Google Scholar
- 41.U. Nestmann and B. C. Pierce. Decoding choice encodings. In U. Montanari and V. Sassone, editors, 7th International Conference on Concurrency Theory (CONCUR’96), volume 1119 of LNCS, pages 179–194. Springer-Verlag, Aug. 1996. Revised full version as report ERCIM-10/97-R051, 1997.Google Scholar
- 42.D. M. R. Park. Concurrency and Automata on Infinite Sequences, volume 104 of LNCS. Springer-Verlag, 1980.Google Scholar
- 43.J. Parrow and P. Sjödin. Multiway synchronization verified with coupled simulation. In R. Cleaveland, editor, Third International Conference on Concurrency Theory (CONCUR’92), volume 630 of LNCS, pages 518–533. Springer-Verlag, 1992.Google Scholar
- 44.J. Parrow and P. Sjödin. The complete axiomatization of cs-congruence. In P. Enjalbert, E. W. Mayr, and K. W. Wagner, editors, Proceedings of STACS’94, volume 775 of LNCS, pages 557–568. Springer-Verlag, 1994.Google Scholar
- 45.B. C. Pierce and D. N. Turner. Pict: A programming language based on the pi-calculus. In G. D. Plotkin, C. Stirling, and M. Tofte, editors, Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, May 2000. ISBN 0262161885.Google Scholar
- 46.D. Sangiorgi. Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms. Ph.D. thesis, University of Edinburgh, May 1993.Google Scholar
- 47.D. Sangiorgi. On the bisimulation proof method. Revised version of Technical Report ECS-LFCS-94-299, University of Edinburgh, 1994. An extended abstract appears in Proc. of MFCS’95, LNCS 969, 1994.Google Scholar
- 49.D. Sangiorgi and D. Walker. The Pi-calculus: a Theory of Mobile Processes. Cambridge University Press, July 2001. ISBN 0521781779.Google Scholar
- 50.L. van Doorn, M. Abadi, M. Burrows, and E. Wobber. Secure network objects. In Proceedings of the 1996 IEEE Symposium on Security and Privacy, pages 211–221, May 1996.Google Scholar