601.428/628 (F23):
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 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)