INF564 : Compilation
Enseignant responsable
: Jean-Christophe
Filliâtre
Année 2023-24
(moodle)
Présentation
Ce cours est une introduction à la compilation. On y explique les
techniques et outils utilisés dans les différentes phases d'un
compilateur, jusqu'à la production de code assembleur optimisé. Un
compilateur pour un fragment du langage C vers l'assembleur x86-64 est
réalisé en TD.
plan du cours
Cours
- Introduction (8 janvier 2024)
- Cours 1 (8 janvier 2024) : Assembleur x86-64
- Cours 2 (15 janvier 2024) : Syntaxe abstraite, sémantique et interprète
- Cours 3 (jeudi 25 janvier 2024) : Analyse lexicale et syntaxique
- Cours 4 (29 janvier 2024) : Typage
- Cours 5 (5 février 2024) : Modes de passage, objets
- Cours 6 (12 février 2024) : Production de code (1/3)
- Cours 7 (26 février 2024) : Production de code (2/3), fermetures,
appels terminaux
- Cours 8 (4 mars 2024) : Production de code (3/3)
- Cours 9 (11 mars 2024) : Allocation mémoire
TD
Modalités de rendu et d'évaluation du projet
Le sujet du projet sera donné plus tard.
Examen
Archives :
Ressources
Environnement de travail
Pour les TD et le projet, vous aurez besoin
- de compiler du code assembleur x86-64 (TD 1 + fin du projet) ;
- de compiler du code Java ou OCaml, au choix (à partir du TD 2).
Voici quelques pointeurs.
Cartes de référence
Ouvrages en rapport avec le cours
Ces trois ouvrages sont disponibles à la BCX.
Le cours ci-dessus ne suit pas vraiment ces ouvrages.
Néanmoins, se sont de très bons ouvrages, conseillés pour aller plus loin.
For foreign students not yet fluent in French
- A tiny French-English dictionary
(also in the appendix of the lecture notes)
- a rough correspondence between the lectures and chapters from the
books above (which are in English):
| Lecture | Chapters
|
1 | Assembly | Bryant & O'Hallaron 3
|
3 | Syntactic analysis | Dragon 3-4
|
4 | Typing | Pierce 8-9-10 et 22
|
5 | Semantics | Pierce 3-4-5
|
Merci à Léon Gondelman et Mário Pereira pour leur aide pendant la
préparation de ce cours.
Note : Ce cours a été assuré entre 2005 et 2016
par François Pottier.
Le matériel de ce cours est
archivé ici.