Hauptinhalt
Dieser Eintrag ist aus dem Wintersemester 2022/23 und möglicherweise veraltet. Ein aktuelles Äquivalent finden Sie hier.
CS 551 — Compilerbau
(engl. Compiler Construction)
Niveaustufe, Verpflichtungsgrad | Vertiefungsmodul, Wahlpflichtmodul |
Lehr- und Lernformen, Arbeitsaufwand |
Vorlesung (4 SWS), Übung (2 SWS), 270 Stunden (90 Std. Präsenzzeit, 180 Std. Selbststudium) |
Leistungspunkte, Voraussetzungen zum Erwerb |
9 LP Studienleistung(en): Erreichen von mindestens 50 Prozent der Punkte aus den wöchentlich zu bearbeitenden Übungsaufgaben und mündliche Präsentation der Lösung von mindestens zwei der Übungsaufgaben. Prüfungsleistung: Mündliche Prüfung oder Klausur |
Sprache, Benotung |
Deutsch,Die Benotung erfolgt mit 0 bis 15 Punkten gemäß der Prüfungsordnung für den Studiengang M.Sc. Informatik. |
Dauer des Moduls, Häufigkeit |
Ein Semester, Regelmäßig alle 3 bis 4 Semester |
Modulverantwortliche(r) | Prof. Dr. Christoph Bockisch |
Inhalt
Compiler übersetzen Programme aus höheren Programmiersprachen in ausführbaren Maschinencode. In der Vorlesung werden Konzepte und Methoden, die für die verschiedenen Phasen von Compilern entwickelt wurden, vor- und gegenübergestellt:
- Lexikalische Analyse: reguläre Ausdrücke, endliche Automaten, flm-Prinzip, Scannergeneratoren
- Syntaktische Analyse: Kontextfreie Grammatiken, RD-Parsing mit LL(k)- Grammatiken, SR-Parsing mit LR(k)-Grammatiken, Präzedenz-gesteuerte Parser, Parsergeneratoren;
- Semantische Analyse mit Attributgrammatiken
- Zwischencode-Erzeugung
- Code-Optimierung
Qualifikationsziele
- Unterscheidung verschiedener Aspekte von Programmiersprachen (Lexik, Syntax, Semantik, Pragmatik),
- Kenntnisse über den Aufbau von Compilern, Compilerphasen, Bootstrapping,
- Werkzeuge zur Compilererzeugung verstehen, erstellen und anwenden,
- Grundprinzipien der Codeerzeugung, der denotationellen Semantik und abstrakter Maschinen,
- Programmieren einzelner Teile eines Compilers,
- Einüben wissenschaftlicher Arbeitsweisen (Erkennen, Formulieren, Lösen von Problemen, Schulung des Abstraktionsvermögens),
- Training der mündlichen Kommunikationsfähigkeit in den Übungen durch Einüben der freien Rede vor einem Publikum und bei der Diskussion.
Voraussetzungen
Keine. Empfohlen werden die Kompetenzen, die in dem Modul Theoretische Informatik vermittelt werden.
Verwendbarkeit
Importmodul aus dem M.Sc. Informatik.
Es kann im FB12 verwendet werden im Studiengang bzw. in den Studiengängen
- B.Sc. Informatik
- B.Sc. Wirtschaftsinformatik
- M.Sc. Informatik
- M.Sc. Mathematik
- LAaG Informatik
Im Studiengang B.Sc. Informatik kann das Modul im Studienbereich Informatik Wahlpflichtmodule absolviert werden.
Das Modul ist der Theoretischen Informatik zugeordnet. Weitere Informationen zur Wählbarkeit sind der Bereichsbeschreibung zu entnehmen.
Literatur
- Drachenbuch: Aho/Sethi/Ullman: Compilers — Principles, Techniques, and Tools, Addison-Wesley 1986; Waite/Goos: Compiler Construction, Springer Verlag 1994; Wilhelm/Maurer: Übersetzerbau: Theorie, Konstruktion, Generierung, Springer Verlag 1992; Appel: Modern Compiler Implementation in ML/Java/C++, Addison-Wesley 1998.
Bitte beachten Sie:
Diese Seite beschreibt ein Modul gemäß dem im Wintersemester 2022/23 aktuellsten gültigen Modulhandbuch. Die meisten für ein Modul gültigen Regeln werden nicht durch die Prüfungsordnung festgelegt, und können daher von Semester zu Semester aktualisiert werden. Folgende Versionen liegen im Online-Modulhandbuch vor:
- WiSe 2016/17
- SoSe 2018
- WiSe 2018/19
- WiSe 2019/20
- WiSe 2020/21
- SoSe 2021
- WiSe 2021/22
- WiSe 2022/23
- WiSe 2023/24
Das Modulhandbuch enthält alle Module, unabhängig vom aktuellen Veranstaltungsangebot, vergleichen Sie dazu bitte das aktuelle Vorlesungsverzeichnis in Marvin.
Die Angaben im Online-Modulhandbuch wurden automatisch erstellt. Rechtsverbindlich sind die Angaben der Prüfungsordnung. Wenn Ihnen Unstimmigkeiten oder Fehler auffallen, sind wir für Hinweise dankbar.