CSC_52064 : Compilation
Teacher: Jean-Christophe
Filliâtre
Year 2025-26
(version française)
(moodle)
Introduction
This course is an introduction to compilation. It explains the
techniques and tools used in the different phases of a compiler, up to
the production of optimized assembly code.
course overview
Lectures
In amphi Poisson PC 21 (14:00-16:00).
- Introduction (5 jan 2026)
- Lecture 1 (5 jan 2026) : x86-64 assembly
- Lecture 2 (12 jan 2026) : abstract syntax, semantics, interpreters
- Lecture 3 (jeudi 22 jan 2026) : parsing
- Lecture 4 (26 jan 2026) : static typing
- Lecture 5 (2 feb 2026) : passing modes
- Lecture 6 (9 feb 2026) : OO and functional languages
- Lecture 7 (16 feb 2026) : optimizing compiler 1/2
- Lecture 8 (23 feb 2026) : optimizing compiler 2/2
- Lecture 9 (9 mar 2026) : memory allocation
Labs
In rooms 32 and 33 (16:15-18:15).
- lab 1: x86-64 assembly
- lab 2: mini-Python interpreter
Project
Will be given later.
Exam
Pen and paper exam on Monday 16 March, from 2pm to 5pm.
(Room to be determined.)
Past exams:
Resources
For the labs and the project, you'll have
- to compile x86-64 assembly code (lab 1 + end of project) ;
- to compile OCaml code (lab 2 and beyond).
Here are some resources.
Reference cards
Books related to this course
The three of them are available at the BCX.
The course is not based on these books.
Yet they are very nice books, highly relevant to go further.
Dictionary
Many thanks to Léon Gondelman and Mário Pereira for their help in the
preparation of this course.