All information in the future is subject to change, though this calendar represents my aims.

# Date Topic Assignments Reading Examples Extras
1 1/23 CLASS CANCELLED due to flight cancellation
2 1/28
  • Compilers
  • Compiler structure
  • Administrivia
  • Interpreters
3 1/30
  • Mutability in Haskell
4 2/4
  • HERA
  • HERA calling conventions
  • Stack frames
5 2/6
  • Intermediate representations
6 2/11
  • Basic blocks
7 2/13
  • Structured data
  • Arrays
8 2/18
  • Structured data
  • Arrays
9 2/20 SNOW DAY
10 2/25
  • More structured data
  • getelementptr
  • Compiling LLVM
11 2/27
  • Lexing
  • Regular expressions
  • Lexer generators
  • alex
  • Finite automata
  • Appel, Chapter 2, covers lexing.
12 3/4
  • Parsing
  • Context-free grammars
  • Abstract syntax
  • Associativity
  • Ambiguity

  • Review in lab

13 3/6 MIDTERM
3/11 SPRING BREAK
3/13 SPRING BREAK
14 3/18
  • LL Parsing
  • Appel, Chapter 3, covers parsing. Sections up through 3.3 are relevant.
15 3/20
  • LR parsing
  • Shift-reduce parsing
16 3/25
  • More parsing
  • alex
17 3/27
  • happy
18 4/1
  • Deconstructing Tiger
19 4/3
  • Type checking
  • Type-directed compilation
20 4/8
  • Compilation contexts
21 4/10
  • Tour of Assignment 5
  • LR parsing practice
22 4/15
  • Optimization
23 4/17
  • Liveness analysis
  • Appel, Chapter 10, covers liveness analysis. You may skip section 10.2.
24 4/22
  • Register allocation
25 4/24
  • Tour of Assignment 6
26 4/29
  • Review
27 5/1 FINAL EXAM

The final assignment, Assignment 6, will be due Thursday night, May 9, at 11:59pm.