previous up next top index
Précédent : Sémantique des langages concurrents d'ordre Remonter : Sémantique des langages concurrents d'ordre Suivant : Mobilité et vérification


Sémantique de la mobilité

Les langages pour le parallélisme d'ordre supérieur, étant beaucoup plus expressifs que les modèles « classiques » comme les calculs de processus MEIJE ou CCS que nous étudiions précédemment, posent des problèmes plus difficiles, aussi bien en ce qui concerne leur fondement sémantique que leur utilisation comme modèles permettant de raisonner et de faire des vérifications sur des applications concrètes. Dans cette section nous décrivons notre travail sur le premier point.

Un problème ouvert depuis quelques années, et qui a été résolu indépendamment et presque simultanément cette année par plusieurs chercheurs, est celui de la sémantique dénotationnelle du tex2html_wrap_inline627 -calcul. Contrairement au cas des algèbres de processus classique, la « bonne » notion de bisimulation pour le tex2html_wrap_inline627 -calcul est loin d'être clairement établie, et la notion de modèle l'est encore moins. D. Sangiorgi, en collaboration avec Marcelo Fiore de l'université d'Edimbourg et Eugenio Moggi de Gènes, a résolu ce problème en proposant une construction abstraite de modèle qui est complètement adéquate pour une forme particulière de bisimulation, où un statut explicite est donné aux fonctions qui associent des agents aux noms de canaux [16].

La notion de bisimulation elle-même continue de faire l'objet d'actives recherches. Nous avons en particulier proposé, pour la variante dite « asynchrone » du tex2html_wrap_inline627 -calcul, une nouvelle définition qui parait mieux adaptée dans ce cadre. L'idée est la suivante : dans un monde asynchrone, tout message est émis sans délai, et cette émission ne bloque aucune autre activité. Par conséquent on peut penser qu'un observateur ne peut, dans ce cas, « contrôler » le processus observé en lui envoyant des messages. Autrement dit, seuls les messages émis - et non les réceptions de message - par le processus testé peuvent être observés. Cette idée a été mise en oeuvre dans l'article [7], qui développe la théorie équationnelle de cette notion de bisimulation « asynchrone ». Dans le même ordre d'idées, le papier [20] enrichit l'étude des diverses formes de bisimulations proposées pour le tex2html_wrap_inline627 -calcul, et plus particulièrement du point de vue de leur compatibilité avec les opérateurs du langage. Les auteurs montrent en particulier que la version « synchrone » du tex2html_wrap_inline627 -calcul, où l'émission de message est bloquante, requiert une théorie élaborée, où la relation de causalité entre les actions d'un processus est prise en compte.

Deux autres travaux sont à mentionner dans cette section de sémantique. Le premier, dû à D. Sangiorgi [24], établit que le calcul d'objets typés récemment proposé par Abadi et Cardelli peut être codé dans le tex2html_wrap_inline627 -calcul en respectant les types. Ce n'est pas un résultat a priori évident : par exemple le codage « naturel » du calcul d'Abadi et Cardelli dans un tex2html_wrap_inline641 -calcul étendu avec des « records » récursif ne préserve pas le typage. Le codage de Sangiorgi, qui utilise un tex2html_wrap_inline627 -calcul étendu avec une construction « par cas », reste au premier ordre, et est donc plus simple que le codage dans le tex2html_wrap_inline641 -calcul du second ordre établi par Viswanathan (POPL'96). Enfin, dans un article à paraître dans les actes de POPL'97 (Janvier 97), G. Boudol a proposé une synthèse du tex2html_wrap_inline641 -calcul et du tex2html_wrap_inline627 -calcul asynchrone, où l'émission de message est interprétée comme l'application du nom du destinataire au contenu du message, tandis que le récepteur est un agent associé à ce nom. Ainsi la réception d'un message correspond à l'opération qui remplace un nom par sa valeur trouvée dans l'environnement. On obtient un calcul où l'on peut, comme en tex2html_wrap_inline641 -calcul, manipuler directement des données d'ordre supérieur, tout en gardant les facilités de communication du tex2html_wrap_inline627 -calcul asynchrone. Ceci apparaît clairement dans le système de types, qui généralise à la fois celui du tex2html_wrap_inline641 -calcul (types simples de Church et Curry) et le « sorting » du tex2html_wrap_inline627 -calcul donné par Milner. Ce tex2html_wrap_inline627 -calcul généralisé permet aussi de se rendre compte que les diverses traductions de stratégies de réduction du tex2html_wrap_inline641 -calcul dans le tex2html_wrap_inline627 -calcul ne sont rien d'autre qu'une transcription de diverses transformations CPS (« continuation passing style ») connues depuis longtemps.



previous up next top index Précédent : Sémantique des langages concurrents d'ordre Suivant : Mobilité et vérification Remonter : Sémantique des langages concurrents d'ordre