INF564 : Compilation
Enseignant responsable
: Jean-Christophe
Filliâtre
Année 2022-23
(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 (9 janvier 2023)
- Cours 1 (9 janvier 2023) : Assembleur x86-64
- Cours 2 (jeudi 19 janvier 2023) : Syntaxe abstraite, sémantique et interprète
- Cours 3 (23 janvier 2023) : Analyse lexicale et syntaxique
- Cours 4 (30 janvier 2023) : Typage
- Cours 5 (6 février 2023) : Modes de passage, objets
- Cours 6 (13 février 2023) : Production de code (1/3)
- Cours 7 (20 février 2023) : Production de code (2/3), fermetures,
appels terminaux
- Cours 8 (6 mars 2023) : Production de code (3/3)
TD
- TD 1 : Assembleur x86-64
- TD 2 : Interprète mini-Python
- TD 3 : Analyse syntaxique de mini-Turtle
- TD 4/5 : Typage statique de mini-C
- TD 6 : Production de code RTL
- TD 7 : Production de code ERTL, analyse de durée de vie
- TD 8 : Production de code LTL, linéarisation
Modalités de rendu et d'évaluation du projet
Le sujet du projet est sur
moodle.
Le projet est à rendre pour le dimanche 19 mars
18h, via moodle.
Examen
Le contrôle écrit (non classant) aura lieu le lundi 13 mars, de 14h à 17h.
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.