Date Topic Readings/Notes Homework
M Jan 4 intro to compilers, laying out our semester project Chap. 1, Lab 1
W 6 More about Footle
F 8 Scanning Chap. 2
M 11 Parsing Chap. 3
W 13 Closures and Environments Sections 4.1,4.2
F 15 Intro to LLVM Sections 5.1–5.5 Assignment 1 due
M 18 NO CLASS: MLK Day
W 20 NO CLASS Furlough I Sections 5.6–5.8
F 22 More on LLVM, representing values
M 25 Code Generation for varrefs Chapter 6 Assignment 2 due
W 27 NO CLASS: Furlough II
F 29 creating new environment frames / the static pass, in more detail
M Feb 1 error handling, generating code for procedure calls
W 3 representing slots, accessing them Milestone 2 due
F 5 method calls: another flavor of procedure call
M 8 Metaprogramming: writing Java in Scheme Chapter 7
W 10 representing and constructing Strings and Floats
F 12 Intro to Sparc assembly
T 15 (TUESDAY!): SPARC assembly, SPARC registers
W 17 NO CLASS: Furlough II
F 19 Basic Blocks, Register Allocation Milestone 3 due
M 22 Basic Blocks, Instruction Selection
W 24 Building the Interference Graph
F 26 All the way through with a trivial function.
M Mar 1 a simple analysis: 0-CFA Lab 3
W 3 TBA
F 5 TBA
M 8 0-CFA: return, objects Milestone 4 due
W 10 TBA
F 12 TBA