601.428/628 (F21): 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 are marked in a lighter italic font: expect these to change.

Date Topic/Slides Reading Assignment
Mon, Aug 30 Course intro, lexical analysis: slides    
Wed, Sep 1 Context free grammars, parse trees, ambiguity, recursive descent parsing: slides EaC 3.1–3.2  
Mon, Sep 6 Holiday, no class    
Wed, Sep 8 Limitations of recursive descent, precedence climbing: slides EaC 3.3  
Mon, Sep 13 Lexical analyzer generators, lex/flex: slides, lexdemo.zip EaC 2.1–2.5,
F&B Chapters 1–2
 
Wed, Sep 15 LL(1) parsing: slides EaC 3.3 A1 due
Mon, Sep 20 Parser generators, yacc/bison: slides F&B Chapter 3  
Wed, Sep 22 ASTs, Interpreters: slides    
Mon, Sep 27 Interpreter runtime structures: slides, Exam 1 review  
Wed, Sep 29 Bottom-up parsing: slides EaC 3.4  
Mon, Oct 4 Exam 1 in class    
Wed, Oct 6 Context-sensitive analysis, attribute grammars: slides EaC 4.1–4.3 A2 due Fri 10/8
Mon, Oct 11 Compiler project intro, ASTs and symbol tables: slides    
Wed, Oct 13 AST visitors, symbol tables, context-sensitive analysis, ad-hoc techniques: slides EaC 4.4  
Mon, Oct 18 Intermediate representations: slides EaC 5.1–5.5  
Wed, Oct 20 The procedure abstraction: slides EaC Chapter 6  
Mon, Oct 25 Code shape for expressions: slides EaC 7.1–7.4 A3 due
Wed, Oct 27 x86-64 assembly language, code generation: slides    
Mon, Nov 1 Arrays and strings: slides EaC 7.5–7.7  
Wed, Nov 3 Boolean and relational expressions, decisions and loops: slides EaC 7.8  
Mon, Nov 8 Exam 2 in class    
Wed, Nov 10 Intro to Code optimization: slides, slides EaC 8.1–8.5
Mon, Nov 15 Intro to Global optimization, Instruction selection: slides, slides EaC 8.6, 11.5 A4 due Fri 11/12
Wed, Nov 17 Local register allocation: slides EaC 13.1–13.3  
Mon, Nov 22 Thanksgiving break    
Wed, Nov 24 Thanksgiving break    
Mon, Nov 29 Dataflow analysis: slides EaC 9.1–9.2, Killdall-POPL73  
Wed, Dec 1 Code optimization tips, JIT compilation: slides Gosling-IR95  
Mon, Dec 6 Exam 3 review, Static analysis: slides   A5 due