ISS8BB - Advanced Compilation
Advanced Compilation and Semantics
Responsable : Guillaume BONFANTE, Maître de Conférences
Guillaume.Bonfante@univ-lorraine.fr
Durée du module : 21 heures
Crédits ECTS : 2
Objectif général : appréhender les notions de sémantiques des langages de programmation
Syllabus : Sémantique
Contenu
sémantique opérationnelle
sémantique axiomatique, invariants de boucle
notion d'arbre de syntaxe abstraite
transformation de code
compilation
Support
Nous utilisons un livre comme support de cours :
Compilateurs, principes, techniques et outils
A. Aho, R.Sethi, J.Ullman
Programme
Sémantique opérationnelle
Notions abordées : mini-C, un langage à boucle, sémantique opérationnelle
TD : programmation en mini-C
Etude du langage Mini-C
Notions abordées : équivalence de langages de programmation, complétude pour la machine de Turing, boucle for
TD : compilation de la récursion primitive vers mini-C
Sémantique axiomatique
Notions abordées : chaîne de compilation, arbre de syntaxe abstraite, conception générale d'un compilateur
TD : mise en oeuvre de l'analyse lexicale
Conception de grammaire pour un langage de programmation
Notions abordées : langage, grammaire
TD : construction de l'arbre de syntaxe abstraite
Compilation
Notions abordées : X86, modèle de la mémoire, instructions, transformation de l'arbre de syntaxe abstraite
TD : génération de code X86
Suivi de projet
Extension du langage mini-C
Evaluation finale
Présentation générale
et des sous-projets par groupe
Niveau requis
Une aisance en programmation est nécessaire : maîtrises des notions de collection, de généricité, d'héritage, de classe, d'objets
Niveau à atteindre
Connaitre la notion de sémantique opérationnelle
Comprendre la chaîne de compilation
Être capable de définir une syntaxe, et le mécanisme d'analyse
Être capable de construire un compilateur
Modalité d'évaluation
Contrôle continu en séance de TD
Évaluation par groupe de projet à la fin du semestre