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