This page has the entire plan for the semester. For weeks in the future, consider it a plan subject to change. For weeks in the past consider it a record of what we have done. As for the current week, keep a watch for updates and changes.
| Tuesday | Overview of compiler software architecture "After class read Ch. 1, skim Ch. 2 through 2.6" |
| Thursday | Regular expressions and finite state automata (Text Notes)
Quiz 1 on RamCT due tonight Before class read 3.3 and 3.4 |
| Friday | Recitation: 15 minute compiler |
| Tuesday | Lexical analysis for MiniSVG (Text Notes)
Before class read Ch. 2.6 carefully |
| Wed | HW1 due: regular expressions |
| Thursday | Context Free Grammars (Text Notes)
"Before class read Ch. 2.1, 2.2, 4 thru 4.2" |
| Friday | Recitation: subversion AND show TA a lexer for MiniSVG that can handle at least half of the tokens |
| Tuesday | Top-down predictive parsing (Text Notes)
"Before class read Ch 2.3 thru 2.5, 4.3, 4.4" |
| Wed | PA1 due: MiniSVG interpreter |
| Thursday | Finish predictive parsing and MeggyJava intro (Text Notes) |
| Friday | Recitation: MeggyJava examples |
| Tuesday | Really finish predictive parsing and Meggy Java only examples (Text Notes)
"Before class read PA2 writeup, the Meggy Jr programming guide, the MeggyJava grammars" |
| Wed | HW2 due: syntax directed translation and top down parsing |
| Thursday | Meggy Jr RGB Library (Text Notes)
exercise-MeggyJrSimple.cpp |
| Friday | Recitation: subversion for groups Before recitation read Strengthening the Case for Pair Programming |
| Tuesday | Using tools to generate the lexer and parser (Text Notes)
"Before class read Ch 3 thru 3.8, Ch. 4.9, skim JLex Manual and JavaCUP manual""" |
| Wed | PA2 due: MeggyJava and ATmega32p project examples |
| Thursday | Expression ambiguity and regression testing (Text Notes)
CalcExample.tgz "Before class read Ch. 4.2.5, 4.3.3, and Wikipedia regression testing entry" |
| Friday | "Recitation: Jlex, JavaCUP, and starting PA3" |
| Tuesday | Syntax directed expression eval and code generation (Text Notes)
CalcOutFileExample.tgz "Before class read Ch. 4.5, 4.6.3, 4.9, information about precedence in the JavaCUP manual, and 5 thru 5.1" |
| Wed | HW3 due: a new and original PA3 test case with all constant expression types |
| Thursday | Shift-reduce parsing cont (Text Notes)
Before class read 5.3 and Abstract Syntax Tree Implementation Idioms |
| Friday | Recitation: Help day for PA3 AND show instructor testing framework for MeggyJava compiler |
| Tuesday | Abstract syntax trees and visitor design pattern (Text Notes)
Before class read visitor design pattern wikipedia entry |
| Wed | PA3 due: MeggyJava for flower example |
| Thursday | Review for midterm DFA-midterm-example.pdf |
| Friday | Recitation: Visitor example |
| Tuesday | Midterm in class "Previous midterms: midterm-2008.pdf, midterm-2009.pdf, midterm-2010.pdf" |
| Thursday | Code gen for control flow and boolean expressions (Text Notes)
Before class read Ch. 6.6 |
| Friday | Recitation: Help day for PA4 |
| Tuesday | Spring Break |
| Thursday | Spring Break |
| Tuesday | "Expression eval, code generation, and type checking with visitors" (Text Notes) |
| Wed | PA4 due: MeggyJava for button dot example |
| Thursday | Functions and function calls |
| Friday | Recitation: Help day for PA5 |
| Tuesday | Finish functions and function calls Read Ch. 7 through 7.2 "PA5funcexample.java, PA5funcexample.java" |
| Wed | PA5 due: MeggyJava for maze solver example |
| Thursday | Intro to symbol tables and debugging LR parsers (Text Notes)
PA5callExp.java "Before class read Ch 2.7, 2.8.3, 6.5" |
| Friday | Recitation: Debugging with JavaCUP |
| Tuesday | LR(1) parse tables (Text Notes)
Before class read Ch. 4.5 through 4.7.4 |
| Thursday | Finish up LR parse tables and symbol tables |
| Friday | Recitation: Symbol table implementation |
| Friday | HW4 due: LR(1) parse tables |
| Tuesday | Memory model and code generation for objects (Text Notes)
"IMG1_ClassRef.jpg, IMG2_ClassRef.jpg, ClassRef.java.s" |
| Thursday | Intro to PA7 (Text Notes)
IMG3_arrays.jpg |
| Friday | Recitation: optional lab hour |
| Friday | PA6 due: MeggyJava for paddle ball example |
| Tuesday | Memory model example and register allocation (Text Notes)
"IMG_ex1.JPG, IMG_ex2.JPG, IMG_ex3.JPG" |
| Thursday | Register allocation for expressions (Text Notes) |
| Friday | Recitation: optional lab hour |
| Friday | "HW5 due: one correct and three different type/renaming error MeggyJava examples for PA7, email to Kiley, you can do in groups" |
| Tuesday | Register allocation using liveness analysis and greedy algorithm (Text Notes)
"Read Ch. 6.2 - 6.2.2, 8-8.1.2, 8.1.4" |
| Thursday | Register allocation continued Read Ch 8.4 and 8.8 |
| Friday | Recitation: register allocation for PA7 |
| Friday | PA7 due: MeggyJava for game of life example |
| Tuesday | Finished register allocation using liveness analysis and greedy algorithm (Text Notes)
"Reading not required, but interesting 2D Array Layout in C++, Arrays of Arrays in Java" |
| Thursday BEFORE class | HW6 due: register allocation |
| Thursday | Quiz 6 and Final review LotsaErrors.java |
| Friday | Recitation: Final review "Previous finals: cs453final-2008.pdf, final-453-2009.pdf, cs453final-2010.pdf" |