Compiler construction
Kontakt
Sekretariat
Contact
Secretary
Compiler construction
6 CP, 3 V +1 Ü, every two years in the winter semester
Compilers are indispensable for programme development. Understanding how they work is very important for students who want to study programming in depth. The module is therefore aimed in particular at students who wish to specialise in practical Computing Science. It imparts knowledge about the structure and functionality of an essential part of the system software of computer systems. Compiler construction techniques are not only used in the development of system software, but also in some application systems.
Aims of the module/competences:
The students should
□ familiarise themselves with the structure of a compiler and the tasks of the individual phases of compiling a programming language
□ acquire knowledge of common methods from all phases of a compiler,
□ understand and be able to evaluate typical properties as well as advantages and disadvantages of different methods in the phases of a compiler
□ Recognise connections between concepts from automata theory and formal languages and compiler construction,
□ be able to practically apply the methods learnt for the individual compilation phases
□ Understand and evaluate the use of a compiler generator,
□ Learn to develop solutions to small tasks in teams of 2-3 students and to present the results in a group.
□ Carry out a small compiler/interpreter project using current compiler building tools.
Module content:
The module covers all phases of a "classic" compiler: scanner, parser, semantic analysis, intermediate code generation, code optimisation and machine code generation. Common methods are presented for each phase, whereby alternative approaches to parsing (LL parser vs. LR parser) are also presented. In the area of code optimisation, various methods with different requirements are also presented for register optimisation. The structure of the lecture essentially follows the book by Aho, Lam, Sethi, Ullman, which can be considered a compiler construction classic.
In the exercise, the methods presented are deepened in practice using small examples that the students have to carry out independently.
In the practical part of the module, a compiler generator (typically ANTLR) is used to develop an interpreter and the front end of a compiler for a reduced language.