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