Liste des projets du module : Langages Fonctionnels (DESS GLA - 1999/2000)
L'évaluation du cours <<Langages Fonctionnels>> est en partie commune
avec le cours <<Langages embarqués>>. Elle se décompose d'une part en un projet
à choisir à la page :
http://youpou.lip6.fr/queinnec/WWW/cours/dess-projects.html
ou ici même,
et d'autre part en un examen écrit commun aux deux cours, mais noté séparément pour les parties spécifiques.
Le projet proposé pour le cours <<Langages Fonctionnels>> est de réaliser,
en Objective Caml,
une nouvelle implantation du langage SCOL, développé par la socièté Cryo-networks. C'est un projet conséquent.
Pour cela il est décomposé en sous-projets réalisables en binôme, sauf précision dans
le sujet, dans le temps imparti. Ces sous-projets devront être <<pipelinés>>. Il n'est
pas utile de choisir le projet numéro 5, si les 4 précédents ne le sont pas.
La coordination des projets sera effectuées par l'enseignant.
Deux projets d'années seront proposés sur la technologie SCOL et les applications SCOL,
pouvant déboucher sur un stage en entreprise.
Analyseur syntaxique et afficheur
Pour 2 étudiants
-
spécification de la syntaxe abstraite du langage SCOL
- implantation des analyseurs lecical et syntaxique en
utilisant de préférence ocamllex et ocamlyacc
- implantation d'un afficheur de la syntaxe abstraite
Vérificateur et inférence de types
Pour 2 étudiants
-
inférence de types d'une expression et d'une déclaration à partir
de la syntaxe abstraite (on utilisera une unification avec effets de bords)
- gestion de l'environnement global
- afficheur des types des déclarations globales
Interprète
Pour 2 étudiants
-
Interprétation des expressions et des déclarations globales, provenant
de la sortie de l'inférence de types
- gestion de l'environnement d'exécution
- comparaison des temps d'exécution avec le byte-code SCOL
Bibliothèque d'exécution
pour 2 ou 3 étudiants
La taille de cette partie est assez variable, selon le nombre de fonctions externes
implantées, en particulier les fonctions réseau et lancement de nouvelles machines.
Une partie d'entre elles peuvent être écrites en C, en O'CAML et même en SCOL (en reprenant
les bibliothèques existantes).
Elle doit etre utilisable par l'interprète et par le compilateur de
byte-code.
-
bibliothèque sur les types de base
- bibliothèque réseau
- lancement de nouvelles machines, avec ebvironnelent propre
Compilateur vers la machine ZINC
Pour 2 étudiants
La machine ZINC est la machine abstraite du langage O'CAML.
-
compilation vers du byte-code Zinc et édition de liens, à la manière d'OCAML
- comparaison des temps d'exécution avec l'interprète et le byte-code SCOL
Compilateur natif
Pour 2 étudiants
-
compilation vers du code natif (Intel) et édition de liens, à la manière d'OCAML
- comparaison des temps d'exécution avec l'interprète, le byte-code SCOL
et le compilateur natif.
Art du benchmark
Pour 1 ou 2 etudiants
En liaison avec les autres projets, il est demandé de créer un jeu de tests pour évaluaer
les performences obtenues
avec l'interprète et les compilateurs byte-code SCOL, byte-code Zinc et compilateur
natif.
Ce document a été traduit de LATEX par HEVEA.