601.428/628 (F22):
Schedule
This page lists lecture topics, readings, and exam dates. It also lists assignment due dates.
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.
Readings:
Note: The schedule will become more concrete as the semester
progresses. Expect it to be updated frequently. Tentative topics,
readings, assignments, etc. are marked in
a lighter italic font: expect that these could change.
This page lists topics, readings, and has links to lecture slides.
It also lists assignment due dates. Dates in
gray are tentative.
| Date |
Topic/Slides |
Reading |
Assignment |
| Aug 29 |
Course intro, lexical analysis |
|
|
| Aug 31 |
Context-free grammars, parse trees, ambiguity, recursive descent parsing |
EaC 3.1–3.2 |
|
| Sep 5 |
Labor day, no classes |
|
|
| Sep 7 |
Limitations of recursive descent, precedence climbing |
EaC 3.3 |
|
| Sep 12 |
ASTs, interpreters |
|
|
| Sep 14 |
Interpreter runtime structures |
|
A1 due Fri 9/16 |
| Sep 19 |
Interpreter runtime structures 2 |
Gosling, Java Intermediate Bytecodes |
|
| Sep 21 |
Lexical analyzer generators, lex/flex |
EaC 2.1–2.5, F&B Chapters 1–2 |
|
| Sep 26 |
Parser generators, yacc/bison |
F&B Chapter 3 |
A2 MS1 due |
| Sep 28 |
LL(1) parsing |
EaC 3.3 |
|
| Oct 3 |
Bottom-up parsing, Exam 1 review |
EaC 3.4 |
|
| Oct 5 |
Exam 1 |
|
A2 MS2 due Thurs 10/6 |
| Oct 10 |
C syntax and semantics |
|
|
| Oct 12 |
AST visitors, ad-hoc semantic analysis |
|
|
| Oct 17 |
Intermediate representations |
EaC 5.1–5.5 |
|
| Oct 19 |
Code generation for expressions |
EaC 7.1–7.4 |
|
| Oct 20–21 |
Fall break (no classes) |
|
|
| Oct 24 |
x86-64 assembly language, code generation |
|
A3 due |
| Oct 26 |
Conditions, decisions, and loops |
EaC 7.8 |
|
| Oct 31 |
Arrays and strings, High-level code generation |
EaC 7.5–7.7 |
|
| Nov 2 |
Attribute grammars, Low-level code generation |
EaC 4.1–4.3 |
A4 MS1 due Fri 11/4 |
| Nov 7 |
Exam 2 |
|
|
| Nov 9 |
Intro to code optimization: slides, slides |
EaC 8.1–8.5 |
|
| Nov 14 |
Global optimization/liveness analysis, Instruction selection |
EaC 8.6, 11.5 |
|
| Nov 16 |
Local register allocation, Code optimization tips |
EaC 13.1–13.3 |
A4 MS2 due Fri 11/18 |
| Nov 21–25 |
Fall recess (no classes) |
|
|
| Nov 28 |
Dataflow analysis, Code optimization strategy |
EaC 9.1–9.2, Kildall-POPL73 |
|
| Nov 30 |
Static analysis to find bugs |
|
|
| Dec 5 |
Peephole optimization, JIT compilers, course wrap-up |
|
|
| Dec 7 |
Exam review, work day |
|
A5 due Fri 12/9 |
| Dec 16 |
Exam 3, at 2 pm in Hodson 311 |
|
|