% Transformation de programmes
% Giulio Manzonetto
Transformation de programmes, késako ?
- Ancien nom : compilation avancée
- Accent sur les étapes intermédiaires d’un compilateur
- Ni parsing ni assembleur x86 (ou en option seulement), mais:
- Remaniement d’AST (arbres de syntaxe)
- Passages progressifs de langages haut-niveau à bas-niveau
- Comment rendre les récursivités terminales ?
- Qu’est-ce qu’une mise en CPS (Continuation Passing Style) ?
Un cours pour qui?
- Les étudiants qui ont bien aimé le cours de compilation
- Les étudiants qui ont trouvé le cours de compilation trop `bas niveau’ (on ne fera ni parsing ni assembleur x86)
Capacité d’accueil : 27
Prérequis
Plutôt des recommandations :
- Avoir suivi M1 Compilation est un plus
- thème commun, même si on verra des techniques différentes
- Connaître au moins un langage fonctionnel
- On programmera dans le fragment fonctionnel de Scala
- Avoir accès à un ordinateur portable sur lequel travailler
Projet
Transformation d’un langage idéalisé mais représentatif
(traits impératifs + fonctionnels) vers du bytecode JVM
en assurant une récursivité efficace.
Evaluation
65% projet + 35% examen