| Week | Date | Topic, Material | Assignments |
|---|---|---|---|
| 1 | Mar 28 |
Introduction,  
Big picture Phases of compiling Code example of compiling phases |
Translation project overview Phase1: Lexical analyzer tokenconsts.h |
|   | 30 |
Lexical Analysis, Regular expressions, Deterministic Finite Automata (DFA), Non-deterministic Finite Automata (NDFA) |
Regular Expression/DFA homework assigned |
| 2 | Apr 4 | Grammars - BNF, EBNF notation | Grammar homework assigned |
| 6 | Parsing - top-down, bottom-up; Parsing - SLR, LR, LALR, LL intro; How parse tables work; SLR parse table for E/T/F grammar |
Regular Expression/DFA homework due | |
| 3 | 11 |
yacc - yet another compiler compiler |
Phase 1: Lexical analyzer due: Turn-in instructions, Phase2: Parser,   yacc lab |
| 13 |
Building SLR parse table, FIRST and FOLLOW sets |
Grammar homework due | |
|   | 15 | yacc lab due (email to css448@u.washington.edu) |
|
| 4 | 18 | Build SLR parse table exercise, Expr, Term, Factor itemsets |
|
| 20 |
LR(1) itemsets and LALR parse table;
Parse Table conflicts |
  | |
|   | 21 | Phase 2: Parser due:
Turn-in instructions |
|
| 5 | 25 |
Symbol Table - design and implementation |
|
| 27 |
More Symbol Table (ST), ST record - defined by Wirth, ST storage approaches |
Midterm Take-home Exam due; Phase 3: Symbol Table , Symbol Table - kinds of operations, Symbol Table - sample output |
|
| 6 | May 2 | ST discussion; Error handling; | |
| 4 | Dangling else issue; left vs. right recursion; Top down vs. bottom parsing; LL |
||
| 7 | 9 | Recursive descent parsing | |
| 11 |
Intermediate representation   (3-address code: triples and quadruples) |
Phase 4: Code generation |
|
|   | 14 | Phase 3: Symbol Table due, 11pm: ST turn-in instructions |
|
| 15 | Last day to drop a course | ||
| 8 | 16 |
Intermediate representation continued |
|
| 18 | Code generation | ||
| 9 | 23 | Code generation: Run-time environment | |
| 25 | Register allocation, Optimization | ||
| 10 | 30 | Holiday - Memorial Day |   |
| Jun 1 | Wrap-up, Debriefing |   | |
|   | 4 | Phase 4: Code Generation due, 11pm: Turn-in instructions |
|
| 11 | 9 | Compiler presentations, potluck
(UW1-110, starts at 4:30pm) |
Final Exam due |