Projet Moscova
Le Join-Calculus
Go to the
Click
here for the english version
Le join-calculus est un langage experimental basé sur le calcul de
même nom. Il fournit une base simple pour la programmation
distribuée.
Le modèle de programamtion du join-calculus fournit des processus
concurrents tournant sur plusieurs machines, la vérification statique
de type, la portée lexicale globale, la communication distante
transparente, la mobilité par agents, et la détection des pannes.
Implémentations
Nous avons développé deux
implémentations du Join-Calculus dans l'environnement
Objective-CAML.
- Le langage join: ce système comprend un
compilateur et un interpréteur écrits en Objective-CAML. Le langage
est le join-calcul pur avec les types de bases simples, la plupart des
fonctions des libairies d'Objective-CAML en primitives (y compris
graphiques), et une interface simple pour y ajouter n'importe quel
module d'Objective-CAML.
- Le système JoCaml : ce
systeme est base sur la distribution standard d'Objective-CAML,
complétée par une libairie "join-calcul". Le langage est
Objective-CAML étendu syntaxiquement avec les définitions du
join-calcul et les locations. Le système permet de faire tourner
n'importe quel programme Objective-CAML (après recompilation), tout en
intégrant toute la puissance du join-calcul (concurrence,
synchronisation, distribution et agents mobiles).
Documentation (en anglais)
Publications sur le WEB
- Notre modèle de concurrence: The
reflexive chemical abstract machine and the join-calculus, by
Cédric Fournet and Georges Gonthier, POPL'96.
- Sur la programmation distribuée: A
calculus of mobile agents, by Cédric Fournet, Georges
Gonthier, Jean-Jacques Lévy, Luc Maranget and Didier Rémy,
CONCUR'96.
- Sur le typage du join-calculus: 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.
Contact et rapports de bug: jc-team@inria.fr