![]()
Précédent : Un modèle du calcul distribué Remonter :
Actions de
recherche Suivant : Concurrence et sécurité
Mots-clés : concurrence,typage,agents mobiles,parallélisme,pi-calcul,programmation répartie
Le join-calcul de base n'est pas typé. Comme pour le
-calcul de Milner, on
peut ajouter un système de sortes pour au moins savoir
si les valeurs circulant sur les canaux de communication sont de
simples scalaires ou des n-uplets. Mais il est plus difficile
d'ajouter un système de type polymorphe, car le coté très
symétrique du
-calcul interdit
la généralisation des types. Dans le join-calcul, comme
un canal ne peut recevoir des données que vers les définitions
des canaux de communication, l'endroit où l'on peut généraliser
les types est naturel. Alors, un simple critère syntaxique permet
de distinguer entre vrai polymorphisme ou polymorphisme
faible (comme pour les références de ML).
Dans le join-calcul, le typage a une double fonction. Non seulement, il permet de déterminer le type des valeurs passant sur les canaux. Mais il autorise également de déterminer si un canal est synchrone ou asynchrone. Dans le join-calcul de base, cette distinction se fait en notant les canaux synchrones par un nom commençant par une majuscule. Avec le typage, cette convention quelque peu fastidieuse disparait. Or la dualité synchrone / asynchrone est fondamentale pour obtenir un système d'exécution efficace, et pour écrire les parties synchrones comme des expressions d'un langage de programmation normal. Avec le typage, nous arrivons donc à aller vers l'intégration du join-calcul dans un langage de prgrammation réaliste comme C ou ML.
Ce travail [11] est soumis à la conférence CONCUR'97.