Week | Date | Slide set | Topic | Remarks |
2 | 09.01 | 01 | Introduction | |
10.01 | 02,03 | Finite Automata (DFA, NFA) and Regular Expressions | ||
3 | 16.01 | 04 | NFA-DFA conversion, state minimization | |
17.01 | 05,06 | Lexical analysis summary, Context-Free Grammars | flex examples | |
4 | 23.01 | 07 | Top-down parsing, LL(1) parser construction | |
24.01 | 08,09 | Bottom-up parsing, LR(0) parser construction | ||
5 | 30.01 | 10 | LR(0) parsing tables | |
31.01 | 11,12 | SLR, LALR and LR(1) parsing tables, Syntax-directed definition | ||
6 | 06.02 | own | Operational semantics | (Extracurricular) |
07.02 | 13 | Type judgments | ||
7 | 13.02 | 14 | Type checking | |
14.02 | 15,16 | Derived types, Three-Address Code (TAC) | ||
8 | 20.02 | 17 | Run time stack | |
21.02 | 17,18 | Run time stack, function calls | Interrupted by fire alarm | |
9 | 27.02 | 18 | Function calls and stack frames | |
28.02 | 18,19 | Function calls and stack frames, simple objects | ||
10 | 06.03 | 22 | Introduction to optimizations | |
07.03 | 20,21 | Basics of x86_64 instruction set architecture | ||
11 | 13.03 | 23 | Control flow graphs | |
14.03 | 24,25 | Live variables, dataflow analysis framework | ||
12 | 20.03 | 26 | Live variables within the framework | |
21.03 | 27,28 | Other dataflow analysis instances, and dataflow summary | ||
13 | 27.03 | own | Denotational semantics | Cancelled |
28.03 | own | Fixed points | Cancelled | |
14 | 03.04 | Easter | ||
04.04 | Easter | |||
15 | 10.04 | Easter | ||
11.04 | Easter | |||
16 | 17.04 | 29 | Control flow and loop detection | |
18.04 | 30,31 | Instruction selection, register allocation | ||
17 | 24.04 | Summary | ||
25.04 | Summary | |||
18 | 02.05 | |||
05.05 | Teaching ends |
PS | Out | Due | Remarks |
1 | Jan 20th | Feb 2nd | PS1_lecture.pdf |
2 | Feb 3rd | Feb 16th | |
3 | Feb 17th | Mar 2nd | |
4 | Mar 3rd | Mar 16th | Graded |
5 | Mar 17th | Apr 13th | |
6 | Apr 14th | Apr 28th | Graded |
Topic | Slides | Chapters |
Lexical analysis | 02-05 | 3-3.4, 3.6, 3.7, 3.9.6 |
Syntactic analysis | 06-11 | 4-4.4.3, 4.4-4.8 |
High-level intermediate representation | 06-11 | 5-5.4 |
Low-level intermediate representation | 16-17 | 6.2, 6.4, 6.6, 6.8, 6.9 |
Target machine architecture | 18-21 | 7-7.4, 8-8.3 |
Dataflow analysis | 22-28 | 8.4-9.6 |
Analysis applications | 29-31 | 8.8, 8.9 |
Video lectures from 2021
The curriculum covered in these lectures is slightly different from ours, but many of the examples we cover can be found here.
Crafting Interpreters
Free online book which covers several of the same topics as we do.