htw saar Piktogramm QR-encoded URL
Back to Main Page Choose Module Version:


Compiler Construction

Module name (EN):
Name of module in study programme. It should be precise and clear.
Compiler Construction
Degree programme:
Study Programme with validity of corresponding study regulations containing this module.
Applied Informatics, Bachelor, ASPO 01.10.2011
Module code: PIBWI55
The exam administration creates a SAP-Submodule-No for every exam type in every module. The SAP-Submodule-No is equal for the same module in different study programs.
Hours per semester week / Teaching method:
The count of hours per week is a combination of lecture (V for German Vorlesung), exercise (U for Übung), practice (P) oder project (PA). For example a course of the form 2V+2U has 2 hours of lecture and 2 hours of exercise per week.
2V+2P (4 hours per week)
ECTS credits:
European Credit Transfer System. Points for successful completion of a course. Each ECTS point represents a workload of 30 hours.
Semester: 5
Mandatory course: no
Language of instruction:
Oral examination, project, presentation

[updated 30.07.2021]
Applicability / Curricular relevance:
All study programs (with year of the version of study regulations) containing the course.

KI675 (P221-0067) Computer Science and Communication Systems, Bachelor, ASPO 01.10.2014 , semester 5, optional course, technical
KIB-CBAU Computer Science and Communication Systems, Bachelor, ASPO 01.10.2017 , semester 5, optional course, technical
PIBWI55 (P221-0067) Applied Informatics, Bachelor, ASPO 01.10.2011 , semester 5, optional course, informatics specific
PIB-CBAU Applied Informatics, Bachelor, ASPO 01.10.2017 , semester 5, optional course, informatics specific
Workload of student for successfully completing the course. Each ECTS credit represents 30 working hours. These are the combined effort of face-to-face time, post-processing the subject of the lecture, exercises and preparation for the exam.

The total workload is distributed on the semester (01.04.-30.09. during the summer term, 01.10.-31.03. during the winter term).
60 class hours (= 45 clock hours) over a 15-week period.
The total student study time is 150 hours (equivalent to 5 ECTS credits).
There are therefore 105 hours available for class preparation and follow-up work and exam preparation.
Recommended prerequisites (modules):
PIB115 Fundamentals of Informatics
PIB120 Programming 1
PIB210 Programming 2

[updated 22.01.2018]
Recommended as prerequisite for:
Module coordinator:
Thorsten Jakobs, M.Sc.
Thorsten Jakobs, M.Sc.

[updated 08.07.2007]
Learning outcomes:
After successfully completing this module, students will understand the structure of a compiler, its phases and basic concepts.
This includes a development methodology (frontend, backend, intermediate code, bootstrapping) and a detailed look at all phases of a front end, as well as parts of the backend with the respective theoretical foundations.
Students will be able to use the theoretical knowledge they have acquired in the module for project work with the help of suitable development tools. This includes the development of a compiler front end of a reduced high-level programming language.

[updated 30.07.2021]
Module content:
1. Introduction to compilation
2. Phases of a compiler incl. an end-to-end (simple) example, basic terms
3. Bootstrapping
4. Lexical analysis
5. Syntax analysis
6. Semantic analysis and syntax-driven translation
7. Development tools (generators)
8. Generating code
9. Project work: Compiler front end for a high-level programming language (C subset)

[updated 30.07.2021]
Recommended or required reading:
AHO, SETHI, ULLMANN: Compilerbau, Addison Wesley 1989, ISBN 3-89319-151-8
WILHELM, MAURER: Übersetzerbau, Theorie, Konstruktion, Generierung, Springer-Verlag, 1992, ISBN 3-540-55704-0
Various online documentations for development tools, e.g. SUN Solaris documentation for lex and yacc

[updated 30.07.2021]
Module offered in:
SS 2019, WS 2018/19, SS 2018, WS 2015/16, WS 2014/15, ...
[Tue May 30 02:42:16 CEST 2023, CKEY=cbau, BKEY=pi, CID=PIBWI55, LANGUAGE=en, DATE=30.05.2023]