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 25 |
Course intro, lexical analysis |
|
|
| Aug 27 |
Context-free grammars, parse trees, ambiguity, recursive descent parsing |
EaC 3.1–3.2 |
|
| Sep 1 |
Labor day, no classes |
|
|
| Sep 3 |
Limitations of recursive descent, precedence climbing |
EaC 3.3 |
|
| Sep 8 |
ASTs, interpreters |
|
|
| Sep 10 |
Interpreter runtime structures |
|
A1 due Fri 9/12 |
| Sep 15 |
Interpreter runtime structures 2 |
Gosling, Java Intermediate Bytecodes |
|
| Sep 17 |
Lexical analyzer generators, lex/flex |
EaC 2.1–2.5, F&B Chapters 1–2 |
|
| Sep 22 |
LL(1) parsing |
EaC 3.3 |
A2 MS1 due |
| Sep 24 |
Parser generators, yacc/bison, calc.zip (example code) |
F&B Chapter 3 |
|
| Sep 29 |
Bottom-up parsing, Exam 1 review |
EaC 3.4 |
|
| Oct 1 |
Exam 1 |
|
A2 MS2 due Fri 10/3 |
| Oct 6 |
C syntax and semantics |
|
|
| Oct 8 |
AST visitors, ad-hoc semantic analysis |
|
|
| Oct 13 |
Intermediate representations |
EaC 5.1–5.5 |
|
| Oct 15 |
Code generation for expressions |
EaC 7.1–7.4 |
|
| Oct 16–17 |
WSE Fall break (no classes) |
|
|
| Oct 20 |
x86-64 assembly language, low-level codegen |
|
|
| Oct 22 |
Conditions, decisions, and loops |
EaC 7.8 |
A3 due |
| Oct 27 |
Pointers, arrays, structs, function calls |
EaC 7.5–7.7, 7.9 |
|
| Oct 29 |
Exam 2 review, codegen work day |
|
A4 MS1 due Fri 10/31> |
| Nov 3 |
Exam 2 |
|
|
| Nov 5 |
Intro to code optimization, local value numbering, copy propagation |
EaC 8.1–8.5 |
|
| Nov 10 |
Global optimization/liveness analysis |
EaC 8.6 |
|
| Nov 12 |
Local register allocation |
EaC 13.1–13.3 |
A4 MS2 due Fri 11/14 |
| Nov 17 |
Peephole optimization |
EaC 11.5 |
|
| Nov 19 |
Dataflow analysis |
EaC 9.1–9.2, Kildall-POPL73 |
|
| Nov 24–28 |
Fall recess (no classes) |
|
|
| Dec 1 |
Static single assignment (SSA) form: slides, CMU SSA slides, PDX global reg alloc slides |
|
|
| Dec 3 |
Exam 3 review, work day |
|
A5 due Fri 12/5 |
| Dec 17 |
Exam 3, 6pm, Krieger 180 |
|
|