ISS8AA - Semantics

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