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

  1. Fundamentals
  2. Lexical analysis
  3. Syntactic analysis
  4. Semantic analysis
  5. Intermediate code generation
  6. Code generation
  7. 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 hoursType of teachingMedia implementationConcretization
30Lecture-
15Practice-
Lecturer independent learning
Workload hoursType of teachingMedia implementationConcretization
45Preparation/follow-up for course work-
15Study of literature-
30Exam preparation-
15Work 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