Skip to main content

The Join Calculus: A Language for Distributed Mobile Programming

  • Conference paper
  • First Online:
Applied Semantics (APPSEM 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2395))

Included in the following conference series:

Abstract

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.

This work is partly supported by the RNRT project MARVEL 98S0347

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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 [1] and [2].

    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 

  7. R. M. Amadio, I. Castellani, and D. Sangiorgi. On bisimulations for the asynchronous π-calculus. Theoretical Computer Science, 195(2):291–324, 1998.

    Article  MATH  MathSciNet  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 

  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.

    Article  MATH  MathSciNet  Google Scholar 

  10. G. Berry and G. Boudol. The chemical abstract machine. Theoretical Computer Science, 96:217–248, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  11. M. Boreale and D. Sangiorgi. Some congruence properties for π-calculus bisimilarities. Theoretical Computer Science, 198(1–2):159–176, 1998.

    Article  MATH  MathSciNet  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 

  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 http://research.microsoft.com/fournet.

    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 [29], 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 

  25. K. Honda and N. Yoshida. On reduction-based process semantics. Theoretical Computer Science, 152(2):437–486, 1995.

    Article  MathSciNet  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. [29], pages 856–867.

    Google Scholar 

  34. R. Milner. A Calculus of Communicating Systems, volume 92 of LNCS. Springer-Verlag, 1980.

    MATH  Google Scholar 

  35. R. Milner. Communication and Concurrency. Prentice Hall, New York, 1989.

    MATH  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 

  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.

    Chapter  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Fournet, C., Gonthier, G. (2002). The Join Calculus: A Language for Distributed Mobile Programming. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds) Applied Semantics. APPSEM 2000. Lecture Notes in Computer Science, vol 2395. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45699-6_6

Download citation

  • DOI: https://doi.org/10.1007/3-540-45699-6_6

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-44044-4

  • Online ISBN: 978-3-540-45699-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics