Précédent : Logiciels Remonter : Projet MEIJE, Parallélisme,
Synchronisation et Suivant : Actions
industrielles
Dans son article [7] présentant un modèle de la mobilité construit sur le pi-calcul, R. Amadio utilise un typage très élémentaire, qui assure qu'à tout instant dans un système, à un nom donné correspond une ressource unique (dont l'état peut changer d'un appel à l'autre, toutefois). De cette façon, on peut traiter un «site» - ou localité - comme un nom associé à une ressource dont l'état est soit «vivant», soit «mort». R. Amadio développe sur cette base un formalisme qui permet de parler de migration, de défaillance, et offre des méthodes de raisonnement fondées sur une notion de bisimulation. Les articles [12,22] de D. Sangiorgi font usage d'un système de types qui assure qu'à tout instant dans un processus distribué, à un nom donné correspond une ressource unique, dont l'état est indépendant de l'appel. L'objectif ici est de montrer que, en supposant cette contrainte satisfaite sur certains noms présents dans un système, on obtient certaines «identités remarquables» qui permettent de valider certaines transformations de programmes - comme celle qui, accroissant le degré de parallélisme dans la recherche d'éléments dans une table, a été présentée par Cliff Jones comme un défi à la communauté des théoriciens.
Le calcul bleu propose une synthèse du lambda-calcul et du pi-calcul; il a été présenté dans un article à la conférence POPL de cette année [9]). Le système de types pour ce calcul, qui embrasse à la fois la notion de type fonctionnel et la notion de «sorte» pour les canaux de communication, a été étudié plus avant par S. Dal-Zilio dans [20], où l'auteur montre qu'il s'étend naturellement en un système de types implicites et polymorphes, à la ML. Le typage que l'on vient d'évoquer pour le calcul bleu ne permet de donner que des garanties très élémentaires sur le comportement des processus typables. Par exemple, on ne peut exclure des phénomènes de blocage, comme le fait qu'un processus appelle une ressource qui ne sera jamais disponible. Pour pallier ce défaut, G. Boudol dans [10] a proposé une nouvelle notion de type, plus raffinée, qui incorpore un partie de la logique de Hennessy-Milner : la déclaration d'une ressource reçoit un type modal qui indique qu'une valeur d'un certain type est disponible sous un certain nom. La propriété de «subject reduction» est établie pour ce nouveau système de types, mais ceci n'est qu'un résultat préliminaire qui demande à être complété par une preuve du fait que l'absence de blocage est garantie par typage.
Enfin, dans un travail récent [21] en collaboration avec J. Kleist de l'Université d'Aalborg, D. Sangiorgi a prolongé le travail entrepris l'an dernier concernant le codage en pi-calcul des calculs d'objets typés d'Abadi et Cardelli. Ils montrent que l'interprétation de la version impérative du calcul d'objets, typés au premier ordre, peut être factorisée en une partie fonctionnelle et une partie impérative (au sens du pi-calcul, dans les deux cas) très simple, qui consiste en «cellules» gérant l'accès aux méthodes de l'objet. De cette façon, la correction de la traduction peut être prouvée, et l'on peut raisonner sur les objets en utilisant leur représentation en pi-calcul.
Un autre travail, pouvant également amener à des résultats intéressants sur la correction de codages dans le pi-calcul, a été entrepris par I. Castellani en collaboration avec M. Hennessy de l'Université de Sussex. Il s'agit ici d'établir une théorie de «testing» (au sens de De Nicola et Hennessy) pour une version asynchrone du pi-calcul. Cette théorie, moins stricte que la théorie classique du fait que l'observateur a lui-même un comportement asynchrone, nous a permis de dériver de nouvelles égalités sémantiques entre processus. Nous cherchons actuellement d'obtenir une axiomatisation complète du comportement des processus dans ce modèle.
À partir d'une première implantation expérimentale du processeur, nous avons optimisé les algorithmes de calcul des fonctions à trois valeurs en nous inspirant de techniques performantes de calcul des états atteignables. Cela nous a permis de traiter des programmes de taille importante; dans le cadre de la coopération avec Dassault-Aviation nous avons réussi à résoudre de gros contrôleurs ayant 15000 variables internes et plus d'une centaine de points mémoires. Ensuite, nous nous sommes concentrés sur la génération efficace du circuit acyclique, en essayant de garder une structure aussi proche que possible du circuit initial pour éviter l'explosion en taille produite par la méthode naïve. Enfin, nous avons réalisé l'interfaçage du processeur sccausal avec le débogueur symbolique xes, pour expliquer les erreurs sur le code source.
Nous avons introduit de nouvelles techniques d'optimisation spécialement adaptées aux spécificités des circuits Esterel. Ces techniques simplifient l'ensemble des registres de mémoire en utilisant des relations déduites soit à partir de l'espace exact d'états atteignables du circuit [13], dont le calcul reste cher, soit à partir d'informations à bas coût extraites directement des sources Esterel [14].
Ces techniques d'optimisation ont été implantées dans le processeur remlatch qui utilise les algorithmes BDD efficaces fournis par le système TiGeR. Nous avons également réalisé un environnement d'optimisation appelé basicopt qui intègre les nouvelles techniques de remlatch avec les techniques classiques du système SIS.
Les travaux sur l'analyse de causalité ainsi que les nouvelles techniques d'optimisation ont fait l'objet du mémoire de la thèse de Horia Toma [3].
Nous avons également abordé l'étude de la modélisation de
réseaux asynchrones de processus synchrones, et en particulier
l'analyse de la représentation et de l'application efficace
partitionnée de la relation de transition globale. Cette relation
est le pas élémentaire utilisé dans toute vérification
automatique ou interactive. Ce travail est conduit dans le cadre
du projet Esprit LTR Syrf.