Cours de compilation 2008/2009

Archives du cours 2008/2009

Notes de cours

24 septembre 2008 : Introduction
PDF
1er octobre 2008 : Assembleur MIPS
PDF
example.s
factiter.s
8 octobre 2008 : Appel de fonctions
PDF
factorielle récursive naïve boguée
factorielle récursive correcte
Fibonacci récursive, d'après le code fourni par GCC (adapté pour MARS).
Conventions d'appel pour le projet : Réserver dès le départ la place nécessaire dans le bloc pour les paramètres des fonctions appelées. $sp ne bouge pas pendant le corps de la fonction.
15 et 22 octobre 2008 : Rappels d'analyses lexicale et syntaxique, arbre de syntaxe abstraite
PDF
22 octobre 2008 : Table des symboles, niveaux, décalages
PDF
29 octobre et 5 novembre 2008 : Génération de code intermédiaire
PDF
12 novembre 2008 : Production de code assembleur
PDF
19 novembre 2007 : Allocation naïve des registres et analyse de durée de vie des variables
PDF
26 novembre 2007 : Allocation des registres par coloriage de graphes
3 décembre 2007 : Fin du coloriage de graphes, exemples
10 décembre 2007 : GC
PDF (pas de chapitre 9) (version préliminaire)

Ces notes de cours sont très largement tirées de celles de Roberto Di Cosmo d'il y a trois ans, elles-mêmes inspirées du cours de Didier Rémy et du livre d'Andrew Appel.

TD et TP

Semaine 1 : Pas de TD ni TP
Semaine 2 : Assembleur MIPS
PDF
Semaine 3 : Assembleur MIPS
PDF
Semaine 4 : Assembleur MIPS
PDF, runtime.s
Semaine 5 : Arbre de syntaxe abstraite
PDF
Semaine 6 et 7 : Niveaux et décalages
PDF
Semaine 8 : Code intermediaire
PDF
Semaine 8 : Code intermediaire
PDF
Semaine 10 : Munch
PDF