Compiler Construction
General information
-
Code: MTAT.03.235
-
Lecturer: Varmo Vene
-
Credits: 4 (6 ETC)
-
Schedule:
-
Tuesday, 12.15 - 14.00, L404
-
Thursday, 12.15 - 14.00, L404
-
Mailing list: ati.pk@lists.ut.ee
-
Literature:
- A. Aho, R. Sethi, J. Ullman.
Compilers:
Principles, Techniques, and Tools.
Addison Wesley, 1986.
- K. Louden.
Compiler
Construction: Principles and Practice.
Course Technology Inc, 1997.
- R. Wilhelm, D. Maurer.
Compiler Design.
Addison Wesley, 1995.
- R. Wilhelm, H. Seidl.
Übersetzerbau
- Virtuelle Maschinen.
Springer, 2007.
- P. Wilson.
Uniprocessor
Garbage Collection Techniques.
University of Texas, 1994.
Lecture slides
-
02. 09 - Sissejuhatus, interpretaatorid ja kompilaatorid,
kompilaatori struktuur, abstraktsed masinad (tm-intro.pdf; in Estonian).
-
04. 09 - Lexical analysis: regular expressions and finite
automata, Thompson's construction, constructing DFA from NFA,
minimizing DFA, scanner generator Flex
(tm-lex.pdf).
-
09. 09 - Syntax analysis,context-free grammars, ambiguity
(tm-syn.pdf).
-
11. 09 - Syntax analysis: top-down parsing, left-recursion
elimination, left-factoring, LL(1) grammars, predictive parsing.
-
16. 09 - Syntax analysis: bottom-up parsing.
-
23. 09 - Syntax analysis: shift-reduce parsers, LR(0)-grammars,
SLR(1)-grammars.
-
25. 09 - Syntax analysis: LR(k)-grammars, parser generator
Bison.
-
30. 09 - Semantic analysis, attribute grammars
(tm-sem.pdf).
-
02. 10 - CMa arhitecture, compilation of simple expressions and
assignments; compilation of statements
(tm-cma.pdf).
-
07. 10 - Arrays, records and static mamory management;
references and dynamic memory management.
-
09. 10 - Functions; translation of the complete program.
-
14. 10 - Functional language PuF, MaMa arhitecture,
translation of simple expressions and variables
(tm-mama.pdf).
-
16. 10 - Translation of function definitions and
applications.
-
21. 10 - Translation of local ddefinitions; closures and their
evaluation; optimization of global variables and closures.
-
23. 10 - Translation of a complete program; data structures;
tail recursion.
-
28. 10 - Logical language Proll, WiM arhitecture, translation
of terms and goals (tm-wim.pdf).
-
30. 10 - Unification. Translation of clauses, predicates,
queries and programs.
-
04. 11 - Last call optimization, stack frame trimming,
clause indexing, the cut operator.
-
06. 11 - Garbage collection: reference counting, mark-sweep,
Deutsch-Schorr-Waite algorithm, mark-compact
(tm-gc.pdf).
-
11. 11 - Copying garbage collection, Cheney algorithm.
-
13. 11 - Generational garbage collection, Train algorithm.
-
25. 11 - Register allocation
(tm-reg.pdf).
-
09. 12 - Intermediate project presentations.
Links
Varmo Vene