Lectures

Suggested Dragon Book exercises for lectures 1–7.

Dates are filled in as the course progresses; the table below is the planned sequence of topics, not a schedule. Assignment deadlines and lab session dates are fixed and are on the assignments page.

Lectures counts the classes spent on each topic so far. A class split between two topics counts as 0.5 to each. Dates marked planned are not yet included in the lecture counts.

# Topic Dates Lectures Slides Resources
1 Introduction 27/07, 28/07, 29/07 3 01_introduction.pdf  
2 Lexical Analysis 31/07, 03/08 2 02_lexical_analysis.pdf  
3 Parsing 04/08, 05/08, 10/08, 11/08, 12/08, 17/08 5.5 03_parsing.pdf • Recursive descent parser demo
• LL(1) table parser workbench
• Dangling-else equivalence, proved in Lean
4 Bottom-up Parsing 17/08, 18/08, 19/08, 24/08, 25/08, 28/08, 31/08 6.5 04_bottom_up_parsing.pdf • LR(0) item-set and table workbench
• SLR(1) workbench
• LR(1) workbench
5 Semantic Analysis 02/09, 04/09, 07/09, 08/09 4 05_semantic_analysis.pdf MiniJava Type System (CS3300 revision)
6 Syntax Directed Translation 09/09, 16/09, 18/09 2.5 06_sdt.pdf Executable SDD workbench
7 Intermediate Representation 18/09, 21/09, 22/09, 23/09, 28/09, 29/09 5.5 07_ir.pdf AST and IR generation workbench
8 Runtime Management 30/09, 05/10, 07/10 3 08_runtime.pdf  
9 Liveness Analysis and Register Allocation 09/10, 12/10, 13/10 3 09_register_allocation.pdf Linear Scan Register Allocation Paper
10 Basic Blocks and CFG 14/10 1 10_basic_blocks_cfg.pdf  
11 Basic Block Optimizations     11_basic_block_opt.pdf  
12 Global Optimizations     12_global_opt.pdf  

Total lectures so far: 36 (as of 14/10).


Lab sessions

Q slot, Tue 14:00 to 16:45, DCF. There is no lab in the first week.

Date Session
04/08 Flex and Bison tutorial (flex, bison)
18/08 Assignment 1 lab extension
08/09 Assignment 2 lab extension
22/09 Assignment 3 lab extension
13/10 Assignment 4 lab extension
27/10 Assignment 5 lab extension
03/11 Assignment 6 lab extension


The lab extension is written during the session on DCF machines, with no network access other than the locally hosted Moodle. See the assignments page for how it is graded.