"> %%http://www.infop6.jussieu.fr/lmd/2004/licence/ue/prec-2004oct/licence2004.css"> %%% %% %%href="licence.css"> %%href="http://www.infop6.jussieu.fr/licence/2003/licence2003.css">

Compilation paramétrée d'Objective Caml

Emmanuel Chailloux

Présentation générale

Objective Caml
Objective Caml, dévéloppé à l'Inria ( O'Caml ), est l'un des dialectes ML les plus connus. Ses qualités d'expressivité, de sûreté et d'efficacité sont appréciées par une communauté de programmeurs en nombre croissant. Pour améliorer sa diffusion on cherche à le doter d'un environneement de développement intégré portable sur les plate-formes de développement classiques (Windows, macosx, Linux).
ocamil
Le compilateur expérimental ocamil permet d'étudier l'intérêt de la plate-forme d'exécution .NET pour les langages fonctionnels statiquement typés. Plusieurs publications décrivent les techniques employées pour obtenir un compilateur complet d'OCaml qui engendre du code MSIL géré.
La nouvelle version ocamil utilise une partie de l'information issue de la phase de typage pour produire un code optimisé de plus haut niveau. Cette information de types est embarquée dans les différents langages intermédiaires du compilateur jusqu'à la phase de génération de code.

Projet

Ce projet consiste à addapter le compilateur ocamil à la plate-forme d'exécution Java (JVM). Ce travail est découpé en 4 parties :
  1. une partie paramétrisation du compilateur ocamil pour cibler différentes plate-formes d'exécution. Une partie de ce travail a déjà été effectué pour la cohabitation de deux versions de génération de code vers .NET.

  2. une spécification du système de types de la bibliothèque d'exécution Java pour ocamil et de la compilation des principaux traits (contrôle et données).

  3. une partie implantation comprenant la réalisation de la bibliothèque d'exécution Java et de la compilation effectives vers celle-ci permettant d'obtenir un compilateur complet d'O'Caml vers Java.

  4. une partie évaluation permettant de valider les choix techniques.
Au final, on désire valider la démarche utilisée pour ocamil avec la plate-forme .NET, ajouter une plate-forme cible pour le compilateur ocamil et comparer les plate-formes JVM et .NET.

Profil recherché

Le volume de travail de ce projet est évalué entre 4 à 6 mois pour étudiants de M2. Il est clair que connaître les langages O'Caml et Java est nécessaire et qu'avoir suivi un cours de compilation est un plus.

Contact

Emmanuel Chailloux
Equipe PPS 
Université Paris 6 
175, rue du Chevaleret 
75013 Paris

tél : 01 44 27 6 199
mél : Emmanuel.Chailloux@pps.jussieu.fr
web : http://www.pps.jussieu.fr/~emmanuel

This document was translated from LATEX by HEVEA.