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