The JoCaml system
The JoCaml system is an experimental extension of the
Objective-Caml language with the distributed join-calculus programming
model.
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.
The distribution
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.
Documentation
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,
CONCUR'96.
- On testing equivalence: May and Must
Testing in the Join-Calculus, by C. Laneve. Technical Report
UBLCS 96-04, University of Bologna, March 1996.
Contact address and bug reports: jocaml-dev_@_inria.fr