Sujet de Thèse - François-rené RIDEAU Typage statique et sémantique formelle dans les systèmes réflexifs Avril 1997 1/ Contexte Le département "architectures de systèmes répartis" (ASR) de la Direction des Techniques Logicielles (DTL) du CNET s'intéresse à la construction de systèmes répartis hétérogènes flexibles, susceptibles, notamment, de mettre en oeuvre des applications exhibant des contraintes de qualité de service temps réel (comme, par exemple, des applications multimédia interactives). Les travaux du département se place dans le cadre du modèle de référence ODP (Open Distributed Processing) normalisé par l'ISO et l'UIT. Ils ont pour vocation de s'appliquer aux futurs réseaux d'information déployés par les opérateurs de télécommunications. 2/ Problématique La conception de systèmes répartis temps réel ouverts suppose une architecture logicielle très flexible afin d'offrir aux applications ayant des contraintes de qualité de service un plein contrôle des ressources qu'elles mobilisent au cours de leur exécution (par exemple pour autoriser un comportement adaptatif des applications). Cette flexibilité est aussi nécessaire pour autoriser la mise en oeuvre d'algorithmes répartis et de protocoles de communications adaptés aux besoins des applications. La présente génération de systèmes répartis, bien représentés par les plate-formes conformes aux spécifications CORBA de l'OMG, ne fournissent pas le niveau de flexibilité requis. D'ailleurs de nombreux travaux de recherche portent sur des noyaux de systèmes répartis flexibles et adaptables tels, par exemple, Spring, Spin, Choices, X-kernel, etc. Dans la plupart des cas, cependant, la flexibilité atteinte reste limitée à certaines parties du système (par exemple les fonctions de communications), et manque un cadre systématique pour penser la conception d'un tel système. Pour ce faire, une voie d'approche prometteuse en la matière serait de concevoir un système réparti comme une structure réflexive, c'est-à-dire qui maintient en permanence une représentation d'elle-même modifiable et causalement cohérente. Jusqu'à présent, une telle approche a surtout été mise en oeuvre dans des langages de programmation donnés tels Lisp, Smalltalk ou C++. Il n'existe que quelques réalisations partielles de systèmes d'exploitation ou de systèmes répartis (citons néanmoins Apertos, Merlin, Coda, et Synthetics comme exemples). Il reste de ce fait de nombreux problèmes à résoudre pour assurer la viabilité d'une telle approche dans le contexte de travail du département ASR: - mise en oeuvre dans un environnement hétérogène; - implantation performante; - définition de protocole méta-objets pour système temps réel; - définition d'un modèle de programmation réflexif et de sa sémantique formelle; - etc. 3/ Description du sujet Le travail de thèse portera principalement sur la définition formelle d'un modèle de programmation réparti réflexif avec un typage statique fort et sur son implantation expérimentale. Les travaux porteront notamment sur: - la définition du modèle de programmation. La sémantique formelle du modèle pourra être définie en utilisant la cadre logique fourni par l'outil Coq de l'INRIA. Une attention particulière sera apportée à la définition d'un typage statique fort pour le modèle. - la réalisation expérimentale du modèle, par exemple en s'appuyant sur une extension réflexive (à définir) du langage Objective Caml. - une contribution à la réalisation de la plate-forme d'exécution répartie réflexive en cours de définition par le département ASR. Les travaux entrepris pourront contribuer: - au développement et extension des spécifications CORBA de l'OMG; - au développement et extension du modèle de référence ODP de l'ISO et de l'UIT; - au développement de nouvelles plates-formes d'exécution réparties flexibles. 4/ Déroulement Les 6 premiers mois de la thèse seront consacrés à une étude de l'état de l'art. Celle-ci permettra notamment de mettre en évidence: - les différentes approches pour la sémantique formelle de langages et de modèles de programmation répartis réflexifs; - les résultats existants en matière de typage des langages orienté object réflexif. La seconde partie de la thèse portera sur la définition du modèle de programmation et son implantation expérimentale.