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