The language was changed to English.

Course Type (SWS)
Lecture: 3 │ Exercise: 1 │ Lab: 0 │ Seminar: 0
Exam Number:
Exam Code:
Type of Lecture:

Presence lecture with slides, blackboard, and hands-on exercises

Language: German
Cycle: WS
ECTS: 6
Exam Type

Written exam, 90 minutes

Oral Exam
Written Exam
assigned Study Courses
assigned People
assigned Modules
Information
Beschreibung:

Die Vorlesung behandelt die theoretischen Grundlagen und die Algorithmen von Compilern und Interpretern. Die Themen umfassen:
- Einführung in den Compilerbau
- Syntax und Semantik von Programmiersprachen
- Architektur von Compilern und Interpretern
- Lexikalische Analyse
- Syntaktische Analyse
- Zwischendarstellungen von Programmen
- Codegenerierung
- Optimierungen

Die Vorlesung wird durch praktische Übungen begleitet, die auf die Nutzung in der Vorlesung behandelter Algorithmen ausgerichtet sind. Im Verlauf des Semesters entwickeln und erweitern die Studenten nach und nach einen kompletten Compiler für eine einfache Programmiersprache.

Lernziele:

Die Veranstaltung verfolgt das duale Ziel, Studierenden einerseits die theoretischen und algorithmischen Grundlagen zu vermitteln, die für das Verständnis und das Design von Compilern und Interpretern notwendig sind, und ihnen andererseits die praktischen Probleme des Compilerbaus vor Augen zu führen. Die erfolgreiche Teilnahme an den Übungen erfordert die Entwicklung eines vollständigen Compilers, in dem in der Vorlesung behandelte Algorithmen praktisch umgesetzt werden.

Literatur:

Torben Aegidius Mogensen: Introduction to Compiler Design, Springer, 2018

Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 2006 (Dragon book)

A.W. Appel Modern Compiler Implementation in Java, Cambridge University Press, 1998 (Tiger book)

Steven Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufman Publishers, 1997 (Whale book)

Keith D. Cooper and Linda Torczon, Engineering a Compiler, Morgan Kaufman Publishers, 2003 (Ark book)

Randy Allen and Ken Kennedy, Optimizing Compilers for Modern Architectures, Morgan Kaufman Publishers, 2001

Vorleistung:
Infolink:
Bemerkung:
Description:

The lecture covers the theoretical foundations and the algorithms of compilers and interpreters. The main topics are:
- introduction to compiler construction
- syntax and semantics of programming languages
- architecture of compilers and interpreters
- lexical analysis
- syntactic analysis
- intermediate representations of programs
- code generation
- optimizations

The lecture is accompanied by hands-on exercises focusing on making use of the algorithms introduced in the lecture. Over the course of the semester, the students will incrementally develop and enhance a complete compiler for a simple programming language.

Learning Targets:

The lecture has the dual objective to provide students with the necessary theoretical and algorithmic foundations to understand and design compilers and interpreters on the one hand, and to expose them to practical aspects of developing a compiler on the other hand. Completing the exercises involves developing a full-fledged compiler based on the algorithms introduced in the lecture.

Literature:

Torben Aegidius Mogensen: Introduction to Compiler Design, Springer, 2018

Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 2006 (Dragon book)

A.W. Appel Modern Compiler Implementation in Java, Cambridge University Press, 1998 (Tiger book)

Steven Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufman Publishers, 1997 (Whale book)

Keith D. Cooper and Linda Torczon, Engineering a Compiler, Morgan Kaufman Publishers, 2003 (Ark book)

Randy Allen and Ken Kennedy, Optimizing Compilers for Modern Architectures, Morgan Kaufman Publishers, 2001

Pre-Qualifications:
Info Link:
Notice: