CSC_52064 : Compilation
Enseignant responsable
: Jean-Christophe
Filliâtre
Année 2024-25
(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 Python vers l'assembleur x86-64 est
réalisé en TD.
plan du cours
Cours
- Introduction (6 janvier 2025)
- Cours 1 (6 janvier 2025) : Assembleur x86-64
- Cours 2 (13 janvier 2025) : Syntaxe abstraite, sémantique et interprète
- Cours 3 (jeudi 23 janvier 2025) : Analyse lexicale et syntaxique
- Cours 4 (27 janvier 2025) : Typage
- Cours 5 (3 février 2025) : Modes de passage
- Cours 6 (10 février 2025) : Objets et fermetures
- Cours 7 (17 février 2025) : Compilateur optimisant 1/2
- Cours 8 (3 mars 2025) : Compilateur optimisant 2/2
- Cours 9 (10 mars 2025) : Allocation mémoire
TD
- TD 1 : Assembleur x86-64
- TD 2 : Interprète mini-Python
- TD 3 : Analyse syntaxique de mini-Turtle
- TD 4-9 :
Examen
Le contrôle écrit (non classant) aura lieu le lundi 17 mars de 14h à 17h.
(Salle à déterminer.)
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
|
2 | Semantics | Pierce 3-4-5
|
3 | Syntactic analysis | Dragon 3-4
|
4 | Typing | Pierce 8-9-10 et 22
|
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.