Schedule
This page lists topics, readings, and has links to lecture slides.
It also lists assignment due dates and exam dates. Dates in
gray italic are tentative.
The links to slides are provided for reference. In general, there is no
guarantee that they will be posted before class, or that their content
will not change.
Note: The schedule will become more concrete as the semester
progresses. Tentative topics, readings, assignments, etc. are marked
in a lighter italic font: expect that
these could change.
Readings:
| Date |
Topic/Slides |
Reading |
Assignment |
| Aug 31 |
Course intro, lexical analysis |
|
|
| Sep 2 27 |
Context-free grammars, parse trees, ambiguity, recursive descent parsing |
EaC 3.1–3.2 |
|
| Sep 7 |
Labor day, no classes |
|
|
| Sep 9 |
Limitations of recursive descent, precedence climbing |
EaC 3.3 |
|
| Sep 14 |
ASTs, interpreters |
|
|
| Sep 16 |
Interpreter runtime structures |
|
A1 due Fri 9/18 |
| Sep 21 |
Interpreter runtime structures 2 |
Gosling, Java Intermediate Bytecodes |
|
| Sep 23 |
Lexical analyzer generators, lex/flex |
EaC 2.1–2.5, F&B Chapters 1–2 |
|
| Sep 28 |
LL(1) parsing |
EaC 3.3 |
A2 MS1 due |
| Sep 30 |
Parser generators, yacc/bison, calc.zip (example code) |
F&B Chapter 3 |
|
| Oct 5 |
Bottom-up parsing, Exam 1 review |
EaC 3.4 |
|
| Oct 7 |
Exam 1 |
|
A2 MS2 due Fri 10/9 |
| Oct 12 |
C syntax and semantics |
|
|
| Oct 14 |
AST visitors, ad-hoc semantic analysis |
|
|
| Oct 19 |
Intermediate representations |
EaC 5.1–5.5 |
|
| Oct 21 |
Code generation for expressions |
EaC 7.1–7.4 |
|
| Oct 22–23 |
WSE Fall break (no classes) |
|
|
| Oct 26 |
x86-64 assembly language, low-level codegen |
|
|
| Oct 28 |
Conditions, decisions, and loops |
EaC 7.8 |
A3 due |
| Nov 2 |
Pointers, arrays, structs, function calls |
EaC 7.5–7.7, 7.9 |
|
| Nov 4 |
Exam 2 review, codegen work day |
|
A4 MS1 due Fri 11/6 |
| Nov 9 |
Exam 2 |
|
|
| Nov 11 |
Intro to code optimization, local value numbering, copy propagation |
EaC 8.1–8.5 |
|
| Nov 16 |
Global optimization/liveness analysis |
EaC 8.6 |
|
| Nov 18 |
Local register allocation |
EaC 13.1–13.3 |
A4 MS2 due Fri 11/20 |
| Nov 23–27 |
Fall recess (no classes) |
|
|
| Nov 30 |
Peephole optimization |
EaC 11.5 |
|
| Dec 2 |
Dataflow analysis |
EaC 9.1–9.2, Kildall-POPL73 |
|
| Dec 7 |
Static single assignment (SSA) form: slides, CMU SSA slides, PDX global reg alloc slides |
|
|
| Dec 9 |
Exam 3 review, work day |
|
A5 due Fri 12/11 |
| Dec 21 |
Exam 3, 6pm, Location TBD |
|
|