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

  1. Sémantique opérationnelle
    • Notions abordées : mini-C, un langage à boucle, sémantique opérationnelle
    • TD : programmation en mini-C
  2. 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
  3. 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
  4. Conception de grammaire pour un langage de programmation
    • Notions abordées : langage, grammaire
    • TD : construction de l'arbre de syntaxe abstraite
  5. 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
  6. Suivi de projet
    • Extension du langage mini-C
  7. 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