Compiler Construction
- Faculty
Faculty of Engineering and Computer Science
- Version
Version 1 of 23.01.2026.
- Module identifier
11M0662
- Module level
Master
- Language of instruction
German
- ECTS credit points and grading
5.0
- Module frequency
irregular
- Duration
1 semester
- Brief description
The construction of compilers is an old and mature, but still relevant discipline of computer science. Like no other discipline, it combines theoretical, practical and technical computer science. Formal languages and automata theory are just as important as the architecture of target processors and questions of designing a large software system. Compiler construction techniques and tools are also useful if you do not want to develop a complete translator – for example, for parsing a wide variety of text and file formats, for programme parallelisation, analysis and optimisation, or for developing domain-specific languages in the software and hardware sector.
- Teaching and learning outcomes
- Fundamentals
- Lexical analysis
- Syntactic analysis
- Semantic analysis
- Intermediate code generation
- Code generation
- Related topics
- Overall workload
The total workload for the module is 150 hours (see also "ECTS credit points and grading").
- Teaching and learning methods
Lecturer based learning Workload hours Type of teaching Media implementation Concretization 30 Lecture - 15 Practice - Lecturer independent learning Workload hours Type of teaching Media implementation Concretization 45 Preparation/follow-up for course work - 15 Study of literature - 30 Exam preparation - 15 Work in small groups -
- Graded examination
- oral exam or
- Written examination or
- Project Report, written
- Ungraded exam
- Field work / Experimental work
- Remark on the assessment methods
The form of examination is chosen by the lecturer (written examination, oral examination or project report). There is a performance assessment for the practical course (in the form of an experimental project).
- Exam duration and scope
Graded examination performance
- Project report (written): approx. 15-20 pages; explanation: approx. 20 minutes
- Oral examination: see general section of the examination regulations
- Written examination: see study regulations
Ungraded examination performance
- Experimental work: approx. 9 experiments in total
- Recommended prior knowledge
The module requires knowledge of programming and software engineering as well as basic knowledge of computer engineering (computer architecture or microcomputer technology).
- Knowledge Broadening
In this module, students gain a broad understanding of compiler design. They are given an overview of the entire translation process, from lexical analysis to code generation.
- Knowledge deepening
In this module, students deepen their knowledge of programming languages, formal languages and processor instruction sets. They gain a deeper understanding of the relationships between languages (high-level languages, assembly languages), automata theory and compilers.
- Knowledge Understanding
Students are familiar with various classes of formal languages and the associated procedures and algorithms. These can be used to develop compilers or other programmes for analysing and processing textual data.
- Literature
- A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman: "Compilers: Principles, Techniques, and Tools", Addison-Wesley Longman, 2nd ed. 2006
- A. W. Appel, M. Ginsburg: "Modern Compiler Implementation in C", Cambridge University Press, 2004
- W. M. Waite, G. Goos: "Compiler Construction", Springer, 1985
- U. Kastens: "?bersetzerbau", Oldenbourg, 1990
- Applicability in study programs
- Computer Science
- Computer Science M.Sc. (01.09.2025)
- Person responsible for the module
- Weinhardt, Markus
- Teachers
- Weinhardt, Markus