Princeton University
Computer Science Dept.

Computer Science 320
Compiling Techniques

Professor Andrew Appel

Spring 2011

Directory
General Information | Schedule and Readings

Date   TopicReadingHomework
2/6
Introduction; ML language; abstract syntax; util.sml  Ullman 1-3, MCIinML; notes 1
Fun language; more on ML; scope; symbol tables Fun definition, MCIinML; notes 5
2/13 Interpreter due
Type systems Type systems, Fun definition
nested functions, closures; subtypingMCIinML 5, Ullman 4-9; notes
2/20 AlphaConvert due
Subtyping; closure conversion Assignment 3 handout; Danvy (pp. 1-10)
Regular expressions; finite automata MCIinML 2.1, 2.2, 2.3
2/27 Type Checker due
Finite automata; ML-Lex MCIinML 2.4, 2.5, ML-Lex
Context-free grammars; LL parsing MCIinML 3.1, 3.2
3/5 Lexer due
LL parsing; LR parsing MCIinML 3.2,3.3
ML-Yacc; parser error recovery MCIinML 3.4,3.5; ML-Yacc
3/12 Parser due
MIPS; stack frames Larus, MCIinML 6
MIDTERM EXAM, March 15 Exam study guide
3/19 nothing due today
Spring Break
3/26 nothing due today
Garbage collection MCIinML 13
Closures and objects MCIinML 14, 15
4/2 Mips/Spim due
Instruction selection MCIinML 9
Liveness analysis MCIinML 10
4/9 Code Generation due
Dataflow analysis 1 MCIinML 17
Dataflow analysis 2 MCIinML 17
4/16 Liveness Analysis due
Register Allocation MCIinML 11
Loop Optimizations MCIinML 18
4/23 Register Allocation due
Static Single Assignment Form MCIinML 19, and Aycock+Horspool
SSA: φ-elim., functional intermediate forms    MCIinML 19, and Hack et al.
4/30 Spilling + whole compiler due
Instruction Scheduling MCIinML 20
Decoupled Software Pipelining DSWP paper
5/3(Thursday!)(optional) Project proposal due
5/14 (optional) Project due
5/18FINAL EXAM, Friend 004, 9:00 a.m. May 18 Exam study guide

Back to COS 320 front page