Date | Topic | Due | Readings |
---|---|---|---|
R 08/25/22 | Course Introduction | (None, first day) | |
T 08/30/22 | Overview of Python and Cool | Cool Reference Manual | |
R 09/01/22 | Lexical Analysis | PA1 (Python implementation) Due | Dragon Book Ch 3; PL Pragmatics Ch 2.1 – 2.2 |
T 09/06/22 | Lexical Analysis Foundations and Lexer Generators | Flex Manual (especially in
Python's ply package) PL Pragmatics Ch 2.1-2.2 |
|
R 09/08/22 | Parsing Basics (Grammars) | PA1C (Cool implementation) Due | Dragon Book Ch 4.1, 4.2; PL Pragmatics Ch 2.3 |
T 09/13/22 | LL Parsing | Dragon Book Ch 4.3, 4.4; PL Pragmatics 2.3.1-2.3.4 |
|
R 09/15/22 | More Parsing (LR) | PA2 Due | PL Pragmatics Ch 4.8 |
T 09/20/22 | Parser Generators, exam review | Yacc or Bison Manual (especially Python's ply package) | |
R 09/22/22 | Midterm 1 | ||
T 09/27/22 | Types and Scoping | Dragon Book Ch 1.6.1, 1.6.2, 1.6.5, 1.6.6, 1.6.7; PL Pragmatics Ch 3.2.1-3.2.3, 3.6 |
|
R 09/29/22 | Intro to PA4, Types, Scoping
Typchecking example code |
PA3 Due | |
T 10/04/22 | Type Checking | Dragon Book Ch 6.5, PL Pragmatics 4.2, 4.3, 4.6 | |
R 10/06/22 | Type Checking (2) — the slide deck is the same as L11. | Dragon Book Ch 7.2-7.3; PL Pragmatics Ch 8.1-8.3 |
|
T 10/11/22 | Program and Runtime Organization | Dragon Book Ch 6, 6.1, 6.2, 6.3; PL Pragmatics Ch 9.2 |
|
R 10/13/22 | Fall Break | ||
T 10/18/22 | Intermediate Representations | Dragon Book Ch 6.4, 6.6 | |
R 10/20/22 | PA5, Code
Generation PA4 Expectations and Discussion |
PA4 Due | PL Pragmatics Ch 5.2, 5.4, 5.6, 9.4, 9.5 |
T 10/25/22 | PA5 - Code Generation, Object Layout | Dragon Book Ch 9.2.1 – 9.2.3, 9.2.5; PL Pragmatics 14.1.1, 14.2, 14.3.1 |
|
R 10/27/22 | Control Flow Graphs, Dataflow analysis | Dragon Book Ch 9.3 | |
T 11/01/22 | Midterm 2 | ||
R 11/03/22 | Dataflow Analysis | Dragon Book Ch 7.4, 7.5 | |
T 11/08/22 | Code Generation, Introduction to Dataflow Analysis (second half of previous slide deck) | ||
R 11/10/22 | Garbage Collection | PL Pragmatics Ch 14.6, 14.7 | |
T 11/15/22 | Memory Hierarchy, Register Allocation | PL Pragmatics Ch 15.3.2 | |
R 11/17/22 | Linking/Loading | PA5 Due on Saturday, 11/19 at 11:59pm Central | |
T 11/22/22 | Thanksgiving Break | ||
R 11/24/22 | Thanksgiving Break | ||
T 11/29/22 | Optimizations | Wikipedia's
article on Basic Blocks; Wikipedia's article on Dataflow analysis |
|
R 12/01/22 | Optimizations (2) | ||
T 12/06/22 | Bonus lecture: career development and failure | ||
R 12/08/22 | Exam Review | PA6 Due There are no extensions or late days for PA6 | |
T 12/13/22 | 2PM-5PM Final Exam | Absolutely all course material must be turned in. |