Établissement
INP - ENSEEIHT
Description
La matière est composée de 3 cours magistraux, 6 TD et 6TP. La matière est évaluée par un examen sur table de 1h30. Les concepts abordés sont :
- analyse lexicale, syntaxique et sémantique
- Abstract Syntaxe Tree
- table des symboles
- typage (vérification de type)
- génération de code
Le langage d'entrée du compilateur est le langage RAT (constante, variable, fonction, entier, booléen, rationnel, conditionnel, répétition). Le langage de sortie est le langage TAM (machine à pile sans pas de registre). Le compilateur est écrit en OCaml en utilisant Menhir.
Contenu détaillé des séances :
C1 : Introduction à la compilation. Rappel : automate, grammaire, arbre de dérivation + analyse lexicale et syntaxique
TD1 : Manipulation de grammaires, grammaires attribuées
TP1 : Prise en main de Menhir - analyses lexicale, syntaxique et sémantique
C2 : AST, gestion des identifiants, typage (inférence de type avec Mini-ML + contrôle de type avec RAT)
TD2 : Définition de l'AST de RAT + gestion des identifiants à l'aide d'une table des symboles
TP2 : Passe de gestion d'identifiants
TD3 : Typage
TP3 : Passe de typage
C3 : Placement mémoire + génération de code et TAM
TD4 : Placement mémoire
TP4 : Passe de placement mémoire
TD5 : Génération de code
TP5 : Passe de génération de code et TAM
TP6 : Passe de génération de code et TAM
TD6 : Pour aller plus loin (pointeurs, ...) : aide pour le projet

