144 lines
5.5 KiB
Markdown
144 lines
5.5 KiB
Markdown
# Planning of the compilation course (CAP, Compilation and Program Analysis)
|
|
_Academic first semester 2024-2025_
|
|
|
|
# Week 1:
|
|
|
|
- :book: Course: Monday 09/09/2024, 13h30-15h30. Amphi K (Gabriel Radanne)
|
|
|
|
* Introduction: [transparents](course/capmif_cours01_intro_et_archi.pdf).
|
|
* ISA [ref pdf RISCV](course/riscv_isa.pdf).
|
|
* [Demo Assembly](course/demo20.s).
|
|
* Lexing, Parsing, [slides](course/capmif_cours02_lexing_parsing.pdf).
|
|
* [Demo Parsing](course/ANTLRExamples.tar.xz).
|
|
|
|
- :hammer: Lab 1: Thursday 12/09/2024, 10h15-12h15. Room E001 (Samuel
|
|
Humeau & Emma Nardino)
|
|
|
|
- :rocket: Additional ressources (mainly in english)
|
|
|
|
* A nice YT video on [structural induction](https://www.youtube.com/watch?v=2o3EzvfgTiQ) by F. Pereira.
|
|
* Fernando Pereira's other videos on operational semantics : [video1](https://www.youtube.com/watch?v=bOzbRhXvtlY), [video2](https://www.youtube.com/watch?v=aiBKOuM5iEA).
|
|
|
|
# Week 2:
|
|
|
|
- :book: Course: Monday 16/09/2024, 13h30-15h30. Amphi SVT (Bio) (Yannick Zakowski)
|
|
|
|
* Semantics: [transparents](course/capmif_cours_03_semantics.pdf).
|
|
|
|
- :book: Course: Thursday 19/09/2024, 10h15-12h15. Amphi B (Yannick Zakowski)
|
|
|
|
* Typing: [transparents](course/capmif_cours_04_typing.pdf).
|
|
|
|
# Week 3:
|
|
|
|
- :hammer: Lab 2: Thursday 23/09/2024, 13h30-15h30. Room E001 103 & -138 (Grenat) (Samuel Humeau & Emma Nardino)
|
|
|
|
* Lexing & Parsing with ANTLR4 [TP02](TP02/tp2.pdf).
|
|
* Code in [TP02/](TP02/).
|
|
|
|
- :book: Course: Thursday 26/09/2024, 10h15-12h15. Amphi B (Gabriel Radanne)
|
|
|
|
* Interpreters: [transparents](course/capmif_cours03_interpreters.pdf).
|
|
* 3 Address code generation: [transparents](course/capmif_cours05_3ad_codegen.pdf).
|
|
|
|
# Week 4:
|
|
|
|
- :hammer: Lab 3: Monday 30/09/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Interpreter & Typer [TP03](TP03/tp3.pdf).
|
|
* Code in [TP03/](TP03/) and [MiniC/TP03/](MiniC/TP03/).
|
|
|
|
- :book: Course: Thursday 3/10/2024, 10h15-12h15. Amphi B (Gabriel Radanne)
|
|
|
|
* CFG [slides in english](course/capmif_cours06_irs.pdf).
|
|
|
|
# Week 5:
|
|
|
|
- :hammer: Lab 4a: Monday 07/10/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Syntax directed code generation [TP04](TP04/tp4a.pdf).
|
|
* Code in [MiniC/TP04/](MiniC/TP04/).
|
|
* Documentation [here](docs/html/index.html).
|
|
|
|
- :book: Course: Thursday 10/10/2024, 10h15-12h15. Amphi B (Gabriel Radanne)
|
|
|
|
* SSA [slides in english](course/capmif_cours06a_ssa.pdf).
|
|
|
|
# Week 6:
|
|
|
|
- :hammer: Lab 4b: Monday 14/10/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Control Flow Graph [TP04b](TP04/tp4b.pdf).
|
|
* Code in [MiniC/TP04/](MiniC/TP04/).
|
|
* Documentation (updated) [here](docs/html/index.html).
|
|
|
|
- :book: Course: Thursday 17/10/2024, 10h15-12h15. Amphi L (Gabriel Radanne)
|
|
|
|
* Register allocation [slides in english](course/cap_cours07_regalloc.pdf).
|
|
|
|
# Week 7:
|
|
|
|
- :hammer: Lab 5a: Monday 21/10/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Control Flow Graph under SSA Form [TP05a](TP05/tp5a.pdf).
|
|
* Code in [MiniC/TP05/](MiniC/TP05/).
|
|
* Documentation (updated) [here](docs/html/index.html).
|
|
|
|
- :book: Course: Thursday 25/10/2024, 10h15-12h15. Amphi B (Gabriel Radanne)
|
|
|
|
* SSA Optims [slides in english](course/cap_cours06b_ssa_optim.pdf).
|
|
|
|
# Week 8:
|
|
|
|
- :hammer: Lab 5b (1/2): Monday 04/11/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Smart Register Allocation [TP05b](TP05/tp5b.pdf).
|
|
* Code in [MiniC/TP04/](MiniC/TP05/).
|
|
|
|
- :book: Course: Thursday 7/11/2024, 10h15-12h15. Amphi B (Gabriel Radanne)
|
|
|
|
* Beyond Imperative [slides in english](course/cap_cours_bonuscomp.pdf).
|
|
|
|
# Week 9:
|
|
|
|
- :hammer: Lab 5b (2/2): Monday 18/11/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
- :book: Course: Thursday 21/11/2024, 10h15-12h15. Amphi J (Yannick Zakowski)
|
|
|
|
* Functions: code generation [slides in english](course/cap_cours08_func_codegen.pdf).
|
|
|
|
# Week 10:
|
|
|
|
- :notebook: TD: Monday 25/11/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
- :book: Course: Thursday 28/11/2024, 10h15-12h15. Amphi B (Yannick Zakowski)
|
|
|
|
* Functions: semantics [slides in english](course/cap_cour309_func_semantics.pdf).
|
|
|
|
# Week 11:
|
|
|
|
- :hammer: Choice Lab (1/3): Monday 02/12/2024, 8h00-13h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Optimisations under SSA form [TP5c](TP05/tp5c.pdf), code in [MiniC/TPoptim/](MiniC/TPoptim/).
|
|
* Parsing and typechecking functions [TP06a](TP06/tp6a.pdf), code in [MiniC/](MiniC/).
|
|
* Code generation for functions [TP06b](TP06/tp6b.pdf), code in [MiniC/](MiniC/).
|
|
|
|
- :book: Course: Thursday 05/12/2024, 10h15-12h15. Amphi B (Yannick Zakowski)
|
|
|
|
* On parallelism [slides in english](course/cap_cours10_parallelism.pdf).
|
|
|
|
# Week 12:
|
|
|
|
- :hammer: Choice Lab (2/3): Thursday 09/12/2024, 13h30-15h30. Room E001 (Samuel Humeau & Emma Nardino)
|
|
|
|
* Optimisations under SSA form [TP5c](TP05/tp5c.pdf), code in [MiniC/TPoptim/](MiniC/TPoptim/).
|
|
* Parsing and typechecking functions [TP06a](TP06/tp6a.pdf), code in [MiniC/](MiniC/).
|
|
* Code generation for functions [TP06b](TP06/tp6b.pdf), code in [MiniC/](MiniC/).
|
|
* Going Parallel with futures [TPfutures](TPfutures/tpfutures.pdf), code in [TPfutures/MiniC-futures/](TPfutures/MiniC-futures/).
|
|
|
|
- :book: Course: Thursday 12/12/2024, 10h15-12h15. Amphi B (Yannick Zakowski)
|
|
|
|
* Verified Compilation [introduction slides](course/cap_cours11_verified.pdf).
|
|
* Course on black board
|
|
* Additional resources: [Xavier Leroy's class at Collège de France](https://www.college-de-france.fr/en/agenda/lecture/mechanized-semantics-when-the-machine-reasons-about-its-languages)
|