I will strive to get slides uploaded before lecture
This schedule is tentative, based on previous offerings. We may change topics. We will discuss any changes throughout class and we will keep this schedule up to date
Unless explicitly mentioned, Readings will refer to Engineering a Compiler (EAC), see the references page
Module 1: Lexing
Date | Topic | Slides | Readings |
---|---|---|---|
Mon, April 3 | Welcome! | slides | Overview page |
Wed, April 5 | Introduction to Compilers | slides | EAC Chapter 1 |
Fri, April 7 | Introduction to Lexical Analysis (ASYNCHRONOUS LECTURE) | ||
Mon, April 10 | Regular Expressions | slides | |
Wed, April 12 | Implementing Scanners with REs | slides | |
Fri, April 14 | Token Actions | slides |
Module 2: Parsing
Date | Topic | Slides | Readings |
---|---|---|---|
Mon, April 17 | CFGS and Derivations | slides | EAC Chapter 3.2 |
Wed, April 19 | Parse Trees and ambiguous grammars | slides | EAC Chapter 3.2 |
Fri, April 21 | Associativity and top-down parsing | slides | EAC Chapter 3.3 (first half) |
Mon, April 24 | Left recursion and lookahead in parsing (ASYNCHRONOUS LECTURE) | slides | EAC Chapter 3.3 (first half) |
Wed, April 26 | CLASS CANCELED | ||
Fri, April 28 | Recursive descent parsers and symbol tables | slides | EAC Chapter 3.3 (second half) |
Mon, May 1 | Symbol Tables and parser generators | slides | ply documentation |
Wed, May 3 | Parser Generators | slides | ply documentation |
Module 3: Intermediate representations
Date | Topic | Slides | Readings |
---|---|---|---|
Fri, May 5 | Intro to IRs and ASTs | slides | EAC Chapter 5.1 |
Mon, May 8 | MIDTERM | ||
Wed, May 10 | ASTs and type checking | slides | EAC Chapter 4.2 |
Fri, May 12 | ASTs and type checking 2 | slides | EAC Chapter 4.2 |
Mon, May 15 | ASTs and type checking 3 | slides | EAC Chapter 5.3 |
Wed, May 17 | Converting statements into 3 address code | slides | EAC Chapter 5.3 |
Fri, May 19 | Converting statements into 3 address code | slides | EAC Chapter 5.3 |
Module 4: Optimizations
Date | Topic | Slides | Readings |
---|---|---|---|
Mon, May 22 | Midterm overview and intro to optimizations | ON CANVAS | EAC Chapter 8.1 |
Wed, May 24 | Optimization overview | slides | EAC Chapter 8.1 |
Fri, May 26 | Basic blocks and local value numbering | slides | EAC Chapter 8 (up to 8.5) |
Wed, May 31 | Local value numbering 2 | slides | EAC Chapter 8 (up to 8.6) |
Fri, June 2 | Loop transforms | slides | EAC Chapter 7.8 |
Mon, June 5 | Neal and Rithik guest lecture | Rithik | |
Wed, June 7 | Loop transforms 2 | slides | EAC Chapter 7.8 |
Fri, June 9 | Class review | slides | |
IF TIME | Live variable Analysis | EAC Chapter 8.6.1 |
Final
Our final is scheduled for Monday, June 12 8:00–11:00 a.m.