JoCaml: A language for concurrent distributed and mobile programming In these lecture notes, we give an overview of concurrent, distributed, and mobile programming using JoCaml. JoCaml is an extension of the Objective Caml language. It extends OCaml with support for concurrency and synchronization, the distributed execution of programs, and the dynamic relocation of active program fragments during execution. The programming model of JoCaml is based on the join calculus. This model is characterized by an explicit notion of locality, a strict adherence to local synchronization, and a natural embedding of functional programming à la ML. 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 asynchronous implementation. Specifically, the join calculus uses ML’s function bindings and pattern-matching on messages to express local synchronizations. The lectures and lab sessions illustrate how to use JoCaml to program concurrent and distributed applications in a much higher-level fashion than the traditional threads-and-locks approach.

References in zbMATH (referenced in 20 articles , 1 standard article )

Showing results 1 to 20 of 20.
Sorted by year (citations)

  1. Lenglet, Sergueï; Schmitt, Alan; Stefani, Jean-Bernard: Characterizing contextual equivalence in calculi with passivation (2011)
  2. Spoonhower, Daniel; Blelloch, Guy E.; Harper, Robert; Gibbons, Phillip B.: Space profiling for parallel functional programs (2010)
  3. Carpineti, Samuele; Laneve, Cosimo; Padovani, Luca: PiDuce- A project for experimenting web services technologies (2009)
  4. Ma, Qin; Maranget, Luc: Algebraic pattern matching in join calculus (2008)
  5. Miculan, Marino: A categorical model of the fusion calculus (2008)
  6. Pous, Damien: Using bisimulation proof techniques for the analysis of distributed abstract machines (2008)
  7. Gardner, Philippa; Laneve, Cosimo; Wischik, Lucian: Linear forwarders (2007)
  8. Hirschkoff, Daniel; Pous, Damien; Sangiorgi, Davide: An efficient abstract machine for safe ambients (2007)
  9. Pous, Damien: On bisimulation proofs for the analysis of distributed abstract machines (2007)
  10. Sewell, Peter; Leifer, James J.; Wansbrough, Keith; Nardelli, Francesco Zappa; Allen-Williams, Mair; Habouzit, Pierre; Vafeiadis, Viktor: Acute: high-level programming language design for distributed computation (2007)
  11. Niehren, J.; Schwinghammer, J.; Smolka, G.: A concurrent lambda calculus with futures (2006)
  12. Gardner, Philippa; Maffeis, Sergio: Modelling dynamic web data (2005)
  13. Boudol, Gérard: ULM: A core programming model for global computing (extended abstract) (2004)
  14. Phillips, Andrew; Yoshida, Nobuko; Eisenbach, Susan: A distributed abstract machine for boxed ambient calculi (2004)
  15. Fournet, Cédric; Laneve, Cosimo; Maranget, Luc; Rémy, Didier: Inheritance in the join calculus. (2003)
  16. Fournet, Cédric; Le Fessant, Fabrice; Maranget, Luc; Schmitt, Alan: JoCaml: a language for concurrent distributed and mobile programming (2003) ioport
  17. Fournet, Cédric; Gonthier, Georges: The join calculus: A language for distributed mobile programming (2002)
  18. Fournet, C.; Laneve, C.: Bisimulations in the join-calculus (2001)
  19. Huth, Michael; Jagadeesan, Radha; Schmidt, David: Modal transition systems: A foundation for three-valued program analysis (2001)
  20. Fournet, Cédric; Lévy, Jean-Jacques; Schmitt, Alan: An asynchronous, distributed implementation of mobile ambients (2000)