Cours de Compilation 2004/2005
Master d'Informatique, 1ère annéeLaboratoire Preuves, Programmes, Systèmes (PPS)
Université de Paris VII
e-mail: roberto@dicosmo.org
WWW: http://www.dicosmo.org
Attention: les notes de cours 2004/2005 sont en
evolution, en raison des changements de programmes dûs à la mise en place du Master.
Elles apparaitront donc progressivement sur cette page, mises en évidence par un , et suivies par la date de dernière modification
- Introduction et survol (PDF, PDF 2up, PDF 4up) (27/10/2004)
- Rappels OCaml (13/10/2004)
- Présentation de la machine cible: assembleur MIPS (14/10/2004)
- Appels de fonctions dans la machine assembleur (22/10/2004)
- Rappels OcamlLex, OcamlYacc, Arbres de Syntaxe Abstraite et Tables des Symboles (26/10/2004)
- Compilation des langages à blocs: bloc d'activation, lien statique (03/11/2004)
- Code intermediaire: production et transformation (10/11/2004)
- Assembleur: production, allocation naïve des régistres et émission (26/11/204)
- Analyse de durée de vie des variables (26/11/2004)
- Allocation de registres par coloriage de graphes (02/12/2004)
- Optimisation du code
- Analyse Statique: typage avec types recursifs (07/01/2005)
Chargés de TD: Juliusz Chroboczek, Alexandre Miquel
La page des TD/TP se trouve ici.
Les horaires des cours et des TD sont en ligne sur le site de l'UFR
Le projet de compilation est disponible en ligne.
On a ouvert une mailing list m1-0405-compilation, en libre inscription. Allez vous inscrire tout de suite sur http://ufr.pps.jussieu.fr/wws/info/m1-0405-compilation (vous pouvez utiliser votre vrai adresse e-mail): on repondra sur cette liste aux questions posées sur le projet, dont les archives sont publiques.
Bibliographie
La bibliothèque dispose maintenant de plus de 20 copies du livre Modern Compiler Implementation in ML, Andrew W. Appel, Cambridge University Press, 1998, que l'on suit approximativement pour ce cours.
Il y a aussi plus de 20 copies du livre
Développement
d'applications avec Objective Caml
qui est entiérement dedié au langage Ocaml que nous
utilisons dans le cours, et dont je recommande fortement la
lecture. (N.B.: ce livre est entiérement en
ligne).
Enfin, SPIM, le simulateur RISC 2000 utilise pour le projet et dans le cours, est disponible, avec la documentation, en ligne
Remerciements
Mes plus vifs remerciements vont à:- Andrew Appel, pour son excellent livre de texte, sans lequel il aurait été difficile de monter ce cours
- la merveilleuse équipe Cristal, pour OCaml, sans lequel il serait illusoire de mener à bien un projet si ambitieux en si peu de temps
- Didier Rémy, pour m'avoir transmis ses notes de cours, qui m'ont beaucoup aidé dans la redaction de la partie sur l'allocation de registres par coloriage de graphes