TDDB44 Compiler Construction, 5,3 ECTS-points
/Kompilatorkonstruktion/

Advancement level:
D

Aim:
The course aims to teach the principles of compiler construction and administration of run-time storage, and how to use modern compiler construction tools.

Prerequisites:
TDDB 57 Data Structures and Algorithms and TDDA 89 Formal Languages and Automata Theory.

Course organization:
The theory is presented in the lectures. The seminars prepare for the laboratory assignments, where a complete compiler for a small Pascal-like language is implemented.

Course content:
Different types of translators such as compilers and preprocessors. Methods for lexical analysis and syntax analysis. Management of declarations. Different types of internal representations. Memory management and run-time organization. Code generation and code optimization, especially with regards to RISC processors. Methods for handling errors. Compiler construction and compiler generation tools. Language design. A complete compiler for a Pascal-like language is constructed during the laboratory sessions. Certain modules of this compiler will be automatically generated using compiler generation tools, whereas other parts will be implemented by hand in C++.

Course literature:
Aho, A.V., Sethi, R., Ullman, J.D., Compiler Principles, Techniques and Tools, Addison-Wesley, Publ Co 1986. Laboratory material.

TEN1Written examination, 2 p.
LAB1Labratory work, 2 p.
Course language is english.