Mini-compilateur bytecode Mini-ML/Mini-Scheme

Le projet consiste à écrire un compilateur "bytecode" pour, soit un Mini-Scheme, soit un Mini-ML. La machine sous-jacente est de type CAM et est en fait plus adaptée à ML qu'à Scheme (puisque qu'elle ne tire pas partie du fait que les fonctions Scheme ont une arité qui doit être respectée à l'application, mais au contraire suppose que l'arité d'un fonction puisse changer en cours d'exécution - ce qui est le cas avec le typage polymorphe de ML).

Le projet a été donné au printemps 1996 à des étudiants suivant un cours de programmation fonctionnelle en licence d'informatique à l'université Paris 7 (sans doute le projet est assez ambitieux à ce niveau - mieux vaudrait un niveau second semestre de maîtrise ! - et demande à ce que plusieurs séances de TD lui soit consacrées). Dans la pratique, l'interpréteur du "bytecode" (écrit lui-même en Caml-Light et s'interfaçant avec le compilateur par un simple output_value/input_value sur un fichier) a été fourni gracieusement aux étudiants.

Aucune analyse de types n'a été demandée dans le projet.

L'énoncé (fichier PostScript compressé ".ps.gz", 47K)

Une réalisation possible en Caml-Light (fichier ".tar.gz")

L'ensemble est également disponible par ftp anonyme

Contacter l'auteur: Hugo.Herbelin@inria.fr


Page d'accueil de Caml Dernière modification: Monday, March 16, 1998 Rapport d'erreur