| 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; subtyping | MCIinML 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/18 | FINAL EXAM, Friend 004, 9:00 a.m. May 18
| Exam study guide
|