The JoCaml system
The JoCaml system is an experimental extension of the
Objective-Caml language with the distributed join-calculus programming
This model includes high-level communication and synchronising channels,mobile
agents, failure detection and automatic memory management. JoCaml enables
programmers to rapidly develop distributedlarge-scale applications, using both
Objective-Caml ease of programmation and extended libraries, and the
join-calculus distributed and concurrent features. It can already be viewed as
the next-generation Internet programming language.
Our implementation is currently only beta-released:
JoCaml sources (April
2003 : tar.gz, you can read the license here). This version works on most UNIX platforms, and a
port to Windows NT was started in january 2000, partially sponsored by
Microsoft Research .
The current distribution contains:
- The Objective-Caml distribution, version 1.07
- The Join library, included in the distribution
- Lots of examples:
- Bomberman: The famous game, rewritten by Joachim Tordjman.
- The Netscape Plugins: to run JoCaml applets under Netscape, written
from Calves by Joachim Tordjman.
- Pong: The pong game, written by Sylvain Conchon.
- Bataille: The navy war game, written by Sylvain Conchon.
- Tron : The tron game, written in join by Luc Maranget, and translated in
JoCaml by Fabrice Le Fessant.
- Mandel: 3 versions of the mandelbrot fractal, written by Luc Maranget
for the join system, and translated by Fabrice Le Fessant. One of these
versions is a program mixing bytecode and native code.
- Hevea server: a patch to apply to HeVea 1.01, to make it move as a mobile
agent from a server to different clients.
Papers on the Implementation
Papers on the Join-calculus
- The join-calculus 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,
- 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, April 1999. Parts of this work appear in preliminary form in
LICS'98 (Secure Implementation of Channel Abstraction) and in
Security & Privacy '99 (Secure Communication processing for Distributed Languages).
Contact address and bug reports: firstname.lastname@example.org