Princeton University
Computer Science Dept.

Computer Science 320
Compiling Techniques

Professor David August

Schedule and Readings

Spring 2001


Schedule

DateTopicReadingDue
2/6-2/8 Introduction; ML language Ullman 1-3, Appel 1
Regular expressions Appel 2.1, 2.2
Finite automata Appel 2.3,2.4
2/13 Interpreter due
2/13-2/15 ML-Lex Appel 2.5, ML-Lex manual
More on ML Ullman 4-9
Context-free grammars Appel 3.1
2/19 Lexer due
2/20-2/22 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
2/27-3/1 Parser error recovery Appel 3.5
Tiger language; abstract syntax Appel Appendix, 4
3/5 Parser due
3/6-3/8 Symbol tables, declarations, type checking Appel 5
Stack frames Appel 6
3/12 Abstract Syntax due
3/13 Intermediate Representation trees Appel 7
3/15 MIDTERM EXAM covers thru 3/8
3/17-3/25Spring Break
3/28 Type Checker due
3/27-3/29 Canonical Trees Appel 8
Instruction selection Appel 9
4/3-4/5Control Flow Analysis Appel 18
Liveness analysis Appel 10
4/9 Fake Output due
4/10-4/12Dataflow analysis Appel 17
Loop Optimizations Appel 18
4/16 Mostly correct module due
4/17-4/19
Static Single Assignment Form Appel 19
4/23 Warranted correct module due
4/24-4/26 Predication
Instruction Scheduling
4/30 Documented module due
5/1 Garbage collection Appel 13
5/3 Wrap-up
5/7 Compiler due
5/14 Project due
5/15 Special Projects due/Dean's Date
5/19FINAL EXAM

Back to COS 320 front page | Assignments | Course Newsgroup | Links