Roberto Di Cosmo
Laboratoire 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.
Le projet est partie intégrante du cours, et sa note correspond à un examen pratique, pour lequel n'est pas
possible d'obtenir une dispense.
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.
Les notes de cours des années précédentes:
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