Princeton University
Computer Science Dept.

Computer Science 320
Compiling Techniques

Professor David August

Schedule and Readings

Spring 2013


Schedule

TopicReading
Introduction; ML language Ullman 1-3, Appel 1
Regular expressions Appel 2.1, 2.2
Finite automata Appel 2.3,2.4
2/14 Interpreter due
ML-Lex Appel 2.5, ML-Lex manual
More on ML Ullman 4-9
Context-free grammars Appel 3.1
2/25 Lexer due
Parsing Appel 3.2,3.3
ML-Yacc Appel 3.4; ML-Yacc manual
LL parser generation Appel 3.2
LR parser generation Appel 3.3
Parser error recovery Appel 3.5
Fun language; abstract syntax Appel Appendix, 4
3/4 Parser due
Symbol tables, declarations, type checking Appel 5
Stack frames Appel 6
3/11
Garbage Collection/Subtyping Appel 13, Slides on Type analysis
MIDTERM EXAM
Spring Break
3/25 Type Checker due
Garbage collection Appel 13, Slides on GC
Canonical Trees Appel 8
Instruction selection Appel 9
4/1 Mips/Spim due
Control Flow Analysis Appel 18
Liveness analysis Appel 10
Dataflow analysis 1 Appel 17
4/10 Code Generation due
Dataflow analysis 2 Appel 17
Loop Optimizations Appel 18
Static Single Assignment Form Appel 19
4/22 Liveness Analysis and Interference Graph Construction due
Instruction Scheduling
SSA: phi-elimination, correspondence to functional language Slides
4/29 Register Allocation/Graph coloring due
5/6 Spilling module and entire compiler due

Back to COS 320 front page