Projet de la première partie du cours
Compilation avancée
Master STL - M1
2009-20010



Il vous est demandé de réaliser le projet ML2C ou un autre sujet de la liste complémentaire.

compilateur ML2C

Ce projet a pour but de constuire un compilateur d'un mini-ML vers C en reprenant l'architecture et une bonne partie du code du compilateur ml2java décrit au cours 3.

Organisation de ml2java

Le programme ml2java, écrit en O'Caml, se décompose de la manière suivante :

 
module fonction  
     
util.ml utilitaire  
types.ml définition des types de mini-ML  
alex.mll analyseur lexical  
asyn.mly analyseur syntaxique  
typeur.ml le typeur  
env_typeur environnement  
intertypeur.ml toplevel du typeur *
eval.ml évaluateur *
env_eval environnement de l'évaluateur *
intereval.ml toplevel de l'évaluateur *
env_trans.ml environnement du traducteur  
lift.ml un pseudo λ-lifting  
trans.ml le traducteur vers un LI  
prod.ml le traducteur LI vers java  
comp.ml le compilateur complet  
maincomp.ml l'analyseur de la ligne de commande  
runtime.java la bibliothèque d'exécution Java  


Les lignes étoilées correspondent à des fichiers inutiles pour la construction du compilateur. Ils permettent de tester le typeur et de construire facilement un évaluateur.

On demande de modifier le backend (partie basse) du compilateur de la manière suivante :

Autres projets

Rendu

Il est demandé un rapport clair et concis (moins de 10 pages sans les annexes) présentant la problématique du sujet en guidant le lecteur par un exemple pertinent. On peut ajouter des annexes à ce document (en particulier les listings ou des exemples plus complets).

Evaluation

L'évaluation du projet comprend : La note du projet sera commune au binôme.
Les rapports et les implantations sont à rendre au plus tard le lundi 06/04/2010 à 16h par courrier électronique en cliquant ici.
Ce document a été traduit de LATEX par HEVEA