ENSIIE

Page du cours de compilation
Sandrine Blazy

Octobre-décembre 2008


Présentation

Ce cours montre comment construire un compilateur optimisant pour un petit langage impératif.
Après une présentation des langages source et cible du compilateur, le cours explique comment passer de l'un à l'autre, via différents langages intermédiaires.
Il détaille également quelques optimisations classiquement effectuées par les compilateurs.

Les travaux dirigés sont encadrés par Zaynah Dargaye, Benoît Robillard et moi-même.

Modalités d'examen

  • Examen de janvier: tous documents autorisés
  • Session de rattrapage de spetembre: aucun document autorisé


  • Programme

    Ce programme est prévisionnel et pourra être modifié en cours d'année.

    Date Cours Divers
    Lu 20 Oct Cours 1: Architecture MIPS Manuel Spim (par James Larus)
    Lu 3 Nov Cours 2: Syntaxe, sémantique et interprétation de Pseudo-C Résumé de la syntaxe du langage source
    Lu 10 Nov Cours 3: Sélection d'instructions
    Lu 17 Nov Cours 4: Création du graphe de flot de contrôle
    Lu 24 Nov Cours 5: Explicitation de la convention d'appel
    Lu 1er Déc Cours 6: Analyse de durée de vie et construction du graphe d'interférences
    Ve 5 Déc Cours 7: Coloriage du graphe d'interférences
    Lu 15 Déc Cours 8: Arrière du petit compilateur; ramassage de miettes; exceptions
    Ve 9 Jan Examen Examen de l'an dernier

    Ouvrage de référence: Modern comiler implementation in ML, Andrew Appel (ou Modern compiler implementation in C, ou encore Modern implementation in Java, du même auteur).