[an error occurred while processing this directive]
Lecture | Content | Reading directions for the Aho, (Lam,) Sethi, Ullman book | |
---|---|---|---|
1st edition 1986 | 2nd edition 2006/2013 | ||
1 | Introduction | 1.1-1.5, chapter 12 | 1.1-1.2 |
2 3 | [TDDD55 only] Short introduction to formal languages and automata | 3.3, 3.6-3.9, 4.2 | 3.3, 3.6-3.9, 4.2 |
4 | Lexical Analysis | 2.6, 3.1, 3.4, 3.6 (to p. 116), p.121-131, p. 132-133 | 2.6, 3.1, 3.4, 3.6 (to p. 151), p.152-166, p. 170-172 |
Symbol table | 2.7, 7.6, 8.2 | 2.7, 1.6 | |
5 | Parsing | 2.4, p. 160, 4.3 | 2.4, 4.1.1, 4.3 |
Top-Down Parsing | 4.4 | 4.4 | |
6 | Bottom-Up Parsing I | ||
7 | Bottom-Up Parsing II | 4.5 4.8-4.9 [TDDE66 only] 4.7 to p. 230 remaining 4.7 | 4.5, 4.8-4.9 [TDDE66 only] 4.6 |
8 | Semantic Analysis and Internal Form | 2.3, 2.5, 2.8, 5.1-5.3, 8.1, 5.4-5.5, 8.2-8.4 | 2.3, 2.5, 2.8 5.1, 5.3, 5.4.1, 5.4.2, 6, 6.1.1, 6.2, 6.2.1, 6.2.2, 6.2.3, 6.3, 6.4 |
Syntax-Directed Translation | 7.1-7.5 | 5.1, 5.3, 5.4.1, 5.4.2, 6, 6.1.1, 6.2, 6.2.1, 6.2.2, 6.2.3 | |
9 | Memory Management and Run-time Organisation | 10.1-10.3, 9.9 | 7.1, 7.2 |
10 | Intermediate Code Optimization | 9.1-9.2, 9.4, 9.8, 9.9, p. 561-565 | 1.2.5, 8.4, 8.7, 9.1 |
11 | Code generation | 9.5-9.8, 9.12 | 8, 8.1, 8.2, 8.3, 6.6, 8.10 |
12 | [TDDE66 only:] Code generation for RISC and instruction-level parallel processors | 9.7 + slides | 8.8.4, 10, 10.1, 10.2.1, 10.2.2, 10.2.4, 10.3 + slides |
13 | Error Management | p. 88, 160-165, 254-257, 264-266 + slides | 3.1.4, 4.1.3, 4.1.4, 4.8.3, 4.9.4, 4.9.5 + slides |
14 | Interpreters and JIT compilers | p.3 + slides | 8.1.2 + slides |
Compiler Frameworks | Slides only | Slides only | |
Table of Contents | Single A4 TOC (PDF). |
Remarks:
Lectures 2 and 3 give an introduction to formal languages and automata theory as far as needed for the remainder of the course. They are mandatory for all who have not taken the course TDDD14 Formal Languages and Automata or equivalent course before.
Lectures 6 and 7 take up Bottom-up parsing, which has already been covered at some degree in the course TDDD14 Formal Languages and Automata. If you have taken that course, you can consider these lectures as an optional repetition opportunity. For TDDD55 construction of LR(0), LR(1), etc. set of items and parse tables from these sets is not part of the course.
(Bootstrapping, rehosting and T-diagrams are no longer part of the course.)
Lecture 1 Information & Introduction [PDF & PDF] [recording a, recording b] (updated 2024-11-05)
Lecture 2 Formal Languages [PDF (updated 2024)]
Lecture 3 Formal Languages [PDF (updated 2024)]
Lecture 3 Addendum: Finite automata [PDF (updated 2024)]
Lecture 4a Lexical Analysis [PDF (updated 2024) or PDF (updated 2019)]
Lecture 4b Symbol Tables [PDF (updated 2024)]
Lecture 5 Syntax Analysis, Parsing [PDF] [recording] (updated 2024)
Lectures 6/7 Bottom up Analysis [PDF (updated 2008, replaced by L6+L7 below)]
Lecture 6 LR-Parsing part1 Addendum: Pushdown automaton for LR-parsing, Handle, Viable Prefix, Using a parser generator. Parse tree construction. [PDF (updated 2024)]
Lecture 7 LR-Parsing part2 Addendum: Characteristic finite automaton Closure, GOTO graph, Table construction. Conflict handling. SLR(1), LALR(1), LR(1). [PDF (updated 2024)] [Example animation]
Lecture 8 Semantic Analysis, Intermediate Representation, and Attribute Grammars [PDF (updated 2024)] [recording]
Lecture 9 Memory Management and Run-time Systems [PDF (updated 2024)] [recording]
Lecture 10 Intermediate Code Optimization [PDF (updated 2024)] [recording]
Lecture 11 Code Generation [PDF (updated 2024)] [recording]
Lecture 12 Code Generation for RISC and instruction-level parallel processors: Instruction scheduling, Register allocation, Phase ordering problems, Integrated Code Generation. [PDF (updated 2024)] [recording]
Lecture 13 Error management. Exception handling implementation and Interpreters [PDF (updated 2024)] [recording]
Lecture 14 Compiler Frameworks and Bootstrapping [PDF (updated 2024)] [recording]
Some lectures have recorded videos in LISAM available to the registered participants of the course.
[an error occurred while processing this directive]