Course notes
- Part I: semantics of a functional language [ .pdf ]
Schedule
| Date | Room | Topic |
|---|---|---|
| 10/09 | E203 | Caml reinforcement: basics [ intro.ml ] |
| 13/09 | E203 | Caml reinforcement: trees [ imp.ml | trees.ml ] |
| 17/09 | E212/E203 | Semantics of a functional language |
| 20/09 | - | CANCELLED |
| 24/09 | E212/E203 | Types, polymorphism, inference [ typecheck.ml | inference.ml ] |
| 01/10 | E212/E203 | Assembly programming [ MiniML interpreter ] |
| 08/10 | E212/E203 | Program analysis and register allocation [ Optimizing Imp compiler ] |
| 15/10 | E212/E203 | Compilation of a functional language |
| 22/10 | E212/E203 | Dynamic memory allocation [ MiniML compiler ] |
| ??/11 | TBA | Project presentation and oral exam [ updated instructions | updated impc | updated minimlc ] |
Documents and links
Ocaml
- You may find many resources at ocaml.org
- Conchon et Filliâtre, Apprendre à programmer avec OCaml. Algorithmes et structures de données. (book)
MIPS
Books on compilers and related topics
- Aho, Lam, Sethi et Ullman, Modern Compilers: Principles, Techniques, and Tools.
A.k.a. the dragonbook.
Traduit en français (Compilateurs : principes, techniques et outils). - Pierce, Types and Programming Languages.
- Bryant et O'Hallaron, Computer Systems: A Programmer's Perspective.
- Nisam et Schocken, The Elements of Computing Systems: Building a Modern Computer from First Principles.
- Appel, Modern Compiler Implementation in ML.