PARA Project
Cliquer ici pour la version française
The Join-Calculus
The join-calculus is an experimental language based on the
homonymous process calculus. It provides a simple support for
distributed programming.
The join-calculus programming model features concurrent processes
running on several machines, static type-checking, global lexical
scope, transparent remote communication, agent-based mobility, and
some failure-detection.
Implementations
We have developped two
implementations of the Join-Calculus in the Objective-CAML
envirronment.
- The join calculus language: This system contains a compiler and an
interpreter written in Objective-CAML. The language is the
join-calculus, with basic types, most Objective-CAML libraries as
primitives (even graphical ones), and a simple interface to
incorporate any other Objective-CAML module.
- The Join-Objective-Caml system: This system is based on the
standard Objective-CAML distribution, completed with a "join-calculus"
library. The language is Objective-CAML syntactically extended with
join-calculus definitions and locations. The system can not only run
any Objective-Caml program (after recompilation), but integrate all
powerful join-calculus constructs (concurrency, synchronization,
distribution and mobiles agents).
Documentation
Related Papers on the WEB
- Our model of concurrency: The
reflexive chemical abstract machine and the join-calculus, by
Cédric Fournet and Georges Gonthier, POPL'96.
- On distributed programming: A
calculus of mobile agents, by Cédric Fournet, Georges
Gonthier, Jean-Jacques Lévy, Luc Maranget and Didier Rémy,
CONCUR'96.
- On join-calculus typing: Implicit
Typing à la ML for the join-calculus, by Cédric
Fournet, Cosimo Laneve, Luc Maranget and Didier Rémy, CONCUR'97.
- On testing equivalence: May and Must
Testing in the Join-Calculus, by C. Laneve. Technical Report
UBLCS 96-04, University of Bologna, March 1996.
- On security: Secure Implementation of Channel Abstractions, by Martin Abadi, Cedric Fournet, and Georges Gonthier, LICS'98.
Contact address and bug reports: jc-team@inria.fr