1. Course Syllabus

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

1.3. Homework Projects

TBA