CSC_52064 : Compilation
Teacher: Jean-Christophe
Filliâtre
Year 2026-27
(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 (4 jan 2027)
- Lecture 1 (4 jan 2027) : x86-64 assembly
- Lecture 2 (11 jan 2027) : abstract syntax, semantics, interpreters
- Lecture 3 (25 jan 2027) : parsing
- Lecture 4 (1 feb 2027) : static typing
- Lecture 5 (jeudi 4 feb 2027) : passing modes
- Lecture 6 (8 feb 2027) : OO and functional languages
- Lecture 7 (22 feb 2027) : optimizing compiler 1/2
- Lecture 8 (1 mar 2027) : optimizing compiler 2/2
- Lecture 9 (8 mar 2027) : memory allocation
Labs
In rooms 32 and 33 (16:15-18:15).
- lab 1: x86-64 assembly
- lab 2: mini-Python interpreter
- lab 3: parsing of mini-Turtle
- labs 4-9 :
Project
The instructions will be given on week 4.
Exam
Pen and paper exam on Monday 15 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.