Princeton University
Computer Science Dept.

Computer Science 320
Compiling Techniques

Professor David August

Schedule and Readings

Spring 2000


Schedule

DateTopicReadingDue
2/1-2/3 Introduction; ML language Ullman 1-9, Appel 1
Regular expressions Appel 2.1, 2.2
Finite automata Appel 2.3,2.4
2/7 Interpreter due
2/8-2/10 ML-Lex Appel 2.5, ML-Lex manual
More on ML Ullman 10-17
Context-free grammars Appel 3.1
2/14 Lexer due
2/15-2/17 Parsing Appel 3.2,3.3
LL parser generation Appel 3.2
LR parser generation Appel 3.3
2/22-2/24 ML-Yacc Appel 3.4; ML-Yacc manual
Tiger language; abstract syntax Appel Appendix, 4
Symbol tables, declarations Appel 5.1,5.2
2/28 Parser due
2/29-3/2 Type checking Appel 5.3,5.4
Stack frames Appel 6
More semantic analysis Appel 5,6
3/6 Abstract Syntax due
3/7 Parser error recovery Appel 3.5
3/9 MIDTERM EXAM covers thru 3/2
3/11-3/19Spring Break
3/22 Type Checker due
3/21-3/23 Intermediate Representation trees Appel 7
Canonical Trees Appel 8
2/29 Fake Output due
3/28-3/30 Instruction selection Appel 9
Control Flow Analysis Appel 18
4/4-4/6 Liveness analysis Appel 10
Dataflow analysis Appel 17
4/10 Mostly correct module due
4/11-4/13 Loop Optimizations Appel 18
Static Single Assignment Form Appel 19
4/17 Warranted correct module due
4/18-4/20 Predication
Instruction Scheduling
4/24 Documented module due
4/25 Garbage collection Appel 13
4/27 Wrap-up
5/1 Compiler due
5/9 Project due
5/12FINAL EXAM - 8:30AM, Engineering Quad, C-Wing - C207.

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