Proposition de stage DEA en 2004
par le projet Moscova à l'INRIA Rocquencourt

Jean-Jacques Lévy et James J. Leifer

Introduction

Acute est le prototype d'un nouveau langage conçu à l'INRIA Rocquencourt (par James J. Leifer) et au Computer Lab à l'université de Cambridge (par Peter Sewell et Keith Wansbrough). Il combine la simplicité et la sûreté des langages de la famille ML (comme Ocaml) avec des traits de langage pour la programmation des systèmes distribués.

L'outil de base pour cette programmation est le canal de communication. Il se décline en de nombreuses variétés (en fonction de sa synchronie, sa tolérance face aux pannes, sa sécurité, sa durée de vie, sa capacité de migration...). De nombreux langages distribués ne proposent qu'un type particulier de canal. En Acute, nous voulons pouvoir exprimer toutes ces nuances. C'est pourquoi Acute fournit à la fois l'accès à des primitives de bas niveau comme les fonctions de la bibliothèque TCP d'Unix, et à une programmation de haut niveau. En particulier, toutes les valeurs du langage sont converties en flots d'octets (marshalling).

Au delà de l'exécution distribuée en elle-même, Acute doit faciliter le développement et le déploiement des programmes. Il est souvent impossible de synchroniser les mises à jour : plusieurs versions d'applications et de bibliothèques doivent pouvoir coexister. Acute autorise un contrôle précis sur le partage de code entre programmes communicants y compris lorsque ceux-ci utilisent des versions différentes de bibliothèques partagées.

La conception et la sémantique d'Acute sont décrites dans les rapports suivants :

Le stage

Le but du stage est d'étendre Acute en lui ajoutant des threads (processus légers) et un ordonnanceur, ainsi que des primitives pour le démultiplexage de messages et la synchronisation. Le travail à accomplir peut aller d'une étude théorique (sémantique de réductions et typage) jusqu'à la programmation système de l'environnement d'exécution d'Acute. Plusieurs sujets sont possibles :

Prérequis

Ce stage demande une connaissance d'au moins un des domaines suivants (en fonction du sujet exact choisi) : Ocaml, programmation Unix, sémantique opérationnelle, programmation concurrente, théorie des types.

Laboratoire

Ce stage se déroule à l'INRIA Rocquencourt, au projet Moscova. Il est encadré par James J. Leifer et Jean-Jacques Lévy.

Contact

Les étudiants intéressés peuvent prendre contact avec James.Leifer@inria.fr pour tout renseignement complémentaire. Pour les démarches administratives, veuillez voir la page principale de toutes les propositions de stages.


Cette page : <http://pauillac.inria.fr/~leifer/jobs/dea-2004.html>.
Mise à jour : "2004/02/10 13:01:20 UTC leifer".
Validez cette page.