Week 1: Course Intro
-
8/26CIS531 -- Compiler Construction
-
8/28Preliminaries, x86 Assembly Crash Course
Week 2: Racket Refresher, Interpreting LVar
-
9/2Racket Crash Course
-
9/4Pattern Matching, Interpreters Intro
Week 3: Syntactic Analysis and Parsing
-
9/9Tokenization, Regular Expressions, and Grammars
-
9/11Syntactic Analysis: Recursive Descent, LL(k), and Bottom-Up Parsing
-
Project 1
Week 4: Compiling LVar to x86
-
Week 4
-
9/16LL(k) Parsing, Recursive Descent Parsing
-
9/18Introducing Project 2
-
9/18HW2: Compiling LVar to x86 -- Released 9/18, due 10/2
Week 5: Static-Single Assignment (SSA/ANF), Control-Flow, and Type Checking
-
Week 5
-
9/23Static-Single Assignment and A-Normal Form
-
9/25Branching Control-Flow, Control-Flow Graphs (CFGs)
Week 6: Midterm 1
-
9/30Midterm 1: Review
-
10/2MIDTERM 1 (In Person)
Week 7: Assignment Conversion and Garbage Collection
-
10/7Assignment (set!), Garbage Collection (GC) Introduction
-
10/7HW3: Compiling LIf to x86 -- Released 10/7, due 10/23
-
10/9Implementing Assignment Conversion
Week 8: Fall Break & Loops
-
10/14Fall Break
-
10/16Adding Loops to LIf
Week 9: Loops and Data Flow Analysis
-
10/21Data-Flow Analysis Introduction
-
10/23Monotone Frameworks, Worklist Algorithm
Week 10: Activation Records and Procedures
-
10/28Activation Records, Calling Conventions, and Procedures10/28HW4: Assignment Conversion and Procedures -- Released 10/28, due 11/13
-
10/30Implementing Procedure Calls
Week 11: Register Allocation
-
11/4Register Allocation: Interference Graph, Graph Coloring
-
11/6Register Allocation: D-SATUR Algorithm (Greedy allocation)
Week 12: Closures and Objects
-
11/11Lambdas and Closures, Closures vs. Procedures
-
11/13Objects and VTables, Implementing Closure Conversion
-
11/13Final Project: Proposal Due
Week 13: Midterm 2
-
11/18Midterm 2: Review
-
11/20MIDTERM 2 (In Person)
Week 14: Thanksgiving
-
11/25Thanksgiving Part 1
-
11/27Thanksgiving: Grand Finale (No Class)
Week 15: MLIR and Declarative Analysis
-
12/2Multi-Level Intermediate Representation (MLIR) and Extensible Codegen
-
12/4Declarative Languages, Declarative Analysis
Week 16: Final Project, Presentation, and Final Exam
-
12/9Final Project Presentation
-
12/12Final Project: Code / Report Due
-
12/12FINAL EXAM