htw saar Piktogramm QR-encoded URL
Back to Main Page Choose Module Version:
emphasize objectives XML-Code

flag

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
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.
5
Semester: 5
Mandatory course: no
Language of instruction:
German
Assessment:
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 Computer Science and Communication Systems, Bachelor, ASPO 01.10.2014 , semester 5, optional course, technical
KIB-CBAU (P221-0067) Computer Science and Communication Systems, Bachelor, ASPO 01.10.2021 , semester 5, optional course, technical
KIB-CBAU (P221-0067) Computer Science and Communication Systems, Bachelor, ASPO 01.10.2022 , semester 5, optional course, technical
PIBWI55 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:
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
PIB345


[updated 22.01.2018]
Recommended as prerequisite for:
Module coordinator:
Prof. Dr. Markus Esch
Lecturer:
Thorsten Jakobs, M.Sc.


[updated 08.07.2007]
Learning outcomes:
Learning outcomes:
Importing and, if necessary, translating custom file formats are basic tasks that computer scientists and programmers are regularly confronted with.
Based on the typical structure of a compiler, students will learn about the individual steps of importing, analyzing and translating a (formal) language (source language) into another (formal) language (target language), understand those steps and be able to apply them in their own project.
 
After successfully completing this module, students will: be familiar with the the individual modules of a compiler/translator.
- understand how lexers and parsers work and can be automatically generated from specifications,
- understand how the steps in generating code map high-level language to assembly language using C-to-CMa as an example,
- be familiar with the most important program analyses and optimizations that compilers usually perform (available expressions, interval analysis, constant propagation, dead variables, etc.).
 
In their project, students will develop their own compiler for a programming language they designed themselves.

[updated 04.09.2023]
Module content:
1. Introduction (high-level programming languages, implementation of programming languages)
2. Lexing
3. Parsing
4. Generating code
5. Code optimization
6. Project work

[updated 04.09.2023]
Recommended or required reading:
A. AHO, R. SETHI, J. ULLMAN: Compilers
R. WILHELM, D. Maurer: Übersetzerbau: Theorie, Konstruktion, Generierung
R. WILHELM, H. SEIDL: Übersetzerbau. Virtuelle Maschinen
H. SEIDL, R. WILHELM, S. HACK: Compiler Design: Syntactic and Semantic Analysis
H. SEIDL, R. WILHELM, S. HACK: Übersetzerbau. Analyse und Transformation

[updated 04.09.2023]
Module offered in:
SS 2019, WS 2018/19, SS 2018, WS 2015/16, WS 2014/15, ...
[Thu Apr 25 03:13:28 CEST 2024, CKEY=cbau, BKEY=pi, CID=PIBWI55, LANGUAGE=en, DATE=25.04.2024]