The Join Calculus: A Language for Distributed Mobile Programming

  • Cédric Fournet
  • Georges Gonthier
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2395)


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.


Mobile Agent Operational Semantic Parallel Composition Proof Technique Couple Simulation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 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. 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. 4.
    M. Abadi, C. Fournet, and G. Gonthier. Secure implementation of channel abstractions. Information and Computation, 2000. To appear. Manuscript available from fournet. Subsumes [1] and [2].Google Scholar
  5. 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. 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
  7. 7.
    R. M. Amadio, I. Castellani, and D. Sangiorgi. On bisimulations for the asynchronous π-calculus. Theoretical Computer Science, 195(2):291–324, 1998.zbMATHCrossRefMathSciNetGoogle Scholar
  8. 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
  9. 9.
    J.-P. Banâtre and D. L. Métayer. The Gamma model and its discipline of programming. Science of Computer Programming, 15:55–77, 1990.zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    G. Berry and G. Boudol. The chemical abstract machine. Theoretical Computer Science, 96:217–248, 1992.zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    M. Boreale and D. Sangiorgi. Some congruence properties for π-calculus bisimilarities. Theoretical Computer Science, 198(1–2):159–176, 1998.zbMATHCrossRefMathSciNetGoogle Scholar
  12. 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. 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. 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. 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
  16. 16.
    C. Fournet. The Join-Calculus: a Calculus for Distributed Mobile Programming. PhD thesis, Ecole Polytechnique, Palaiseau, Nov. 1998. INRIA TU-0556. Also available from Scholar
  17. 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 [29], pages 844–855. Full paper available from Scholar
  18. 18.
    C. Fournet and C. Laneve. Bisimulations in the join-calculus. To appear in TCS, available from, Oct. 2000.
  19. 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 Scholar
  20. 20.
    C. Fournet and L. Maranget. The join-calculus language (version 1.03 beta). Source distribution and documentation available from, June 1997.
  21. 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. 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. 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. 24.
    K. Honda and N. Yoshida. Combinatory representation of mobile processes. In Proceedings of POPL’ 94, pages 348–360, 1994.Google Scholar
  25. 25.
    K. Honda and N. Yoshida. On reduction-based process semantics. Theoretical Computer Science, 152(2):437–486, 1995.CrossRefMathSciNetGoogle Scholar
  26. 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. 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. 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. 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. 30.
    F. Le Fessant. The JoCAML system prototype (beta). Software and documentation available from, 1998.
  31. 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. 32.
    X. Leroy and al. The Objective CAML system 3.01. Software and documentation available from
  33. 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. [29], pages 856–867.Google Scholar
  34. 34.
    R. Milner. A Calculus of Communicating Systems, volume 92 of LNCS. Springer-Verlag, 1980.zbMATHGoogle Scholar
  35. 35.
    R. Milner. Communication and Concurrency. Prentice Hall, New York, 1989.zbMATHGoogle Scholar
  36. 36.
    R. Milner. Communication and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge, 1999.Google Scholar
  37. 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. 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. 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. 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. 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. 42.
    D. M. R. Park. Concurrency and Automata on Infinite Sequences, volume 104 of LNCS. Springer-Verlag, 1980.Google Scholar
  43. 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. 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. 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. 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. 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
  48. 48.
    D. Sangiorgi and R. Milner. The problem of “weak bisimulation up to”. In W. R. Cleaveland, editor, Proceedings of CONCUR’ 92, volume 630 of LNCS, pages 32–46. Springer-Verlag, 1992.CrossRefGoogle Scholar
  49. 49.
    D. Sangiorgi and D. Walker. The Pi-calculus: a Theory of Mobile Processes. Cambridge University Press, July 2001. ISBN 0521781779.Google Scholar
  50. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Cédric Fournet
    • 1
  • Georges Gonthier
    • 2
  1. 1.Microsoft ResearchUSA
  2. 2.INRIA RocquencourtFrance

Personalised recommendations