INF 225, Fall 2004, Plan of Lectures






Nr.DateWeekTopicsPages





1.17.08.04 34Chapter: 1 - Introduction
Topics: Overview of translation
1-18, 21-27
2.18.08.04 34Chapter: 2 - Scanning
Topics: Regular Expressions and Finite Automata
- scanning process (section 2.1)
- use of regular expressions to define tokens (section 2.2)
- Deterministic Finite Automata - an alternative definition of token (section 2.3.1)
31-53





3.24.08.04 35Chapter: 2 - Scanning
Topics: Nondeterministic Finite Automata
- Nondeterministic Finite Automata (section 2.3.2)
- Thompson's construction - from regular expressions to NFA (section 2.4.1)
- Subset construction - from NFA to DVA (section 2.4.2)
53-72
4.25.08.04 35Chapter: 2 - Scanning
Topics: Getting to the smallest DFA
- review - from regular expressions to NFA to DFA
- minimizing the number of states in a DFA
72-74





5.31.08.04 36Chapter: 2 - Scanning
Topics: The Lex tool for automatically generating a scanner
- regular expressions in Lex (section 2.6.1)
- format of Lex files (section 2.6.2)
- examples of Lex programs (section 2.6.3)
(75-80) 81-91
6.01.09.04 36Chapter: 3 - Context-Free Grammars and Parsing
Topics: - parsing process (section 3.1)
- context-free grammars (section 3.2)
- parse trees and abstract syntax trees (section 3.3)
95-114





07.09.04 37no lecture - 1. obligatory exercise
08.09.04 37no lecture - 1. obligatory exercise





7.14.09.04 38Chapter: 3 - Context-Free Grammars and Parsing
Topics: ambigous grammars: precedence and associativity (sections 3.4.1+2)
- dangling else problem (sections 3.4.3)
- EBNF and Syntax Diagrams (section 3.5)
- Chomsky hierarchy (section 3.6.3)
114-133
8.15.09.04 38Chapter: 4 - Top-Down Parsing
Topics: - recursive descent parsing (section 4.1)
- left recursion removal and left factoring (section 4.2.3)
143-152, 157-166





9.21.09.04 39Chapter: 4 - Top-Down Parsing
Topics: LL(1) Parsing
- basic method (section 4.2.1)
- parsing table (section 4.2.1)
152-157
10.22.09.04 39Chapter: 4 - Top-Down Parsing
Topics: LL(1) Parsing
- first and follow sets (section 4.3)
- error recovery in recursive-decent parsing (section 4.5)
166-196





11.28.09.04 40Chapter: 5 - Bottom-Up Parsing
Topics: LR(0) parsing
- overview of bottom-up parsing (section 5.1)
- finite automata of LR(0) items (section 5.2.1+2)
197-206
12.29.09.04 40Chapter: 5 - Bottom-Up Parsing
Topics: - LR(0) parsing algorithm (section 5.2.3)
- SLR(1) parsing (section 5.3)
206-217





05.10.04 41no lecture - 2. obligatory exercise
06.10.04 41no lecture - 2. obligatory exercise





12.10.04 42no lecture - 2. obligatory exercise
13.10.04 42no lecture - 2. obligatory exercise





13.19.10.04 43Chapter: 6 - Semantic Analysis
Topics: - structure of symbol table (section 6.3.1)
- declarations (section 6.3.2)
- scope rules and block structures (section 6.3.3)
- interaction of declarations (section 6.3.4)
295-313
14.20.10.04 44Chapter: 6 - Semantic Analysis
Topics: - attributes and attribute grammars (section 6.1)
- algorithms for attribute computations
257-295





15.26.10.04 45Chapter: 6 - Semantic Analysis
Topics: - data types and type constructors (section 6.4.1)
313-320
16.27.10.04 45Chapter: 6 - Semantic Analysis
Topics: - type names, type declarations, recursive types (section 6.4.2)
- type equivalence (section 6.4.3)
- type inference and type checking (section 6.4.4)
320-334





17.02.11.04 46Chapter: 7 - Runtime Environments
Topics: - memory organization (section 7.1)
- fully static runtime environments (section 7.2)
- stack-based runtime environment (section 7.3)
345-373
03.11.04 46no lecture





18.09.11.04 47Chapter: 7 - Runtime Environments
Topics: - fully dynamic runtime environments (section 7.4)
- parameter passing mechanisms (section 7.5)
373-388
19.10.11.04 47Chapter: 8 - Code Generation
Topics: - intermediate code
- three-address code, P-code (section 8.1)
397-407





20.16.11.04 47Chapter: 8 - Code Generation
Topics: - basic code generation techniques (section 8.2)
- code generation of datastructure (section 8.3)
407-428
21.17.11.04 47Chapter: 8 - Code Generation
Topics: - code generation of control statements (section 8.4)
- code generation of function calls (section 8.5)
428-443