1. Course Syllabus¶
1.1. Course Prerequisites¶
1.2. Topics and Lectures¶
The list of topics below is a subject of possible minor changes.
- Introductions Compilers, Interpreters, and OCaml
- OCaml Crash Course: Translating Simple to OCaml
- X86lite
- C calling conventions
- Intermediate Representations
- Structured Data in the LLVM IR
- Lexing: Regular Expressions and DFAs
- Parsing I: Context Free Grammars
Mid-Term Break
- Parsing II: LL(k) parsing, LR(0) parsing, LR(1) Parsing
- Parsing III: Using Menhir
- First-Class Functions, Lambda Calculus
- Types I: Scope, Types, and Type Checking
- Types II: Judgments and Derivations
- Types III: Rich Types, Subtyping, Mutability
- Optimisations: Dead Code Elimination, Constant Propagation
- Data Flow Analysis, Lattices
- Register Allocation, Graph Colouring
- Current Research in PL Design and Implementation