Cours de Compilation 2004/2005

Master d'Informatique, 1ère année
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 tick, et suivies par la date de dernière modification

  1. Introduction et survol (PDF, PDF 2up, PDF 4up)tick (27/10/2004)
  2. Rappels OCamltick (13/10/2004)
  3. Présentation de la machine cible: assembleur MIPS tick (14/10/2004)
  4. Appels de fonctions dans la machine assembleur tick (22/10/2004)
  5. Rappels OcamlLex, OcamlYacc, Arbres de Syntaxe Abstraite et Tables des Symboles tick(26/10/2004)
  6. Compilation des langages à blocs: bloc d'activation, lien statique tick(03/11/2004)
  7. Code intermediaire: production et transformation tick(10/11/2004)
  8. Assembleur: production, allocation naïve des régistres et émission tick(26/11/204)
  9. Analyse de durée de vie des variables tick(26/11/2004)
  10. Allocation de registres par coloriage de graphes tick(02/12/2004)
  11. Optimisation du code
  12. Analyse Statique: typage avec types recursifs tick(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

Valid HTML 4.01!