inf019 - Compilerbau (Vollständige Modulbeschreibung)
Modulbezeichnung | Compilerbau |
Modulkürzel | inf019 |
Kreditpunkte | 6.0 KP |
Workload | 180 h |
Einrichtungsverzeichnis | Department für Informatik |
Verwendbarkeit des Moduls |
|
Zuständige Personen |
|
Teilnahmevoraussetzungen | |
Kompetenzziele | **Fachkompetenzen** Die Studierenden: - benennen die Struktur eines Compilers und die Aufgaben der einzelnen Phasen der Compilierung einer Programmiersprache - beschreiben gängige Methoden aus allen Phasen eines Compilers - verstehen und bewerten typische Eigenschaften sowie Vor und Nachteile verschiedener Methoden in den Phasen eines Compilers - wenden die gelernten Methoden zu den einzelnen Compilierungsphasen praktisch an - bewerten den Einsatz eines Compilergenerators **Methodenkompetenzen** Die Studierenden: - erkennen die Verbindungen von Konzepten aus Automatentheorie und formalen Sprachen zum Compilerbau **Sozialkompetenzen** Die Studierenden: - erarbeiten Lösungen zu kleinen Aufgaben in Teams von 2-3 Studierenden und präsentieren diese **Selbstkompetenzen** Die Studierenden: - reflektieren ihr Lernverhalten bezüglich komplexer Verfahren |
Modulinhalte | Das Modul behandelt alle Phasen eines "klassischen" Compilers: Scanner, Parser, semantische Analyse, Zwischencodegenerierung, Codeoptimierung und Maschinencodegenerierung. Zu jeder Phase werden gängige Methoden vorgestellt, wobei zum Parsing auch alternative Ansätze (LL-Parser vs. LR-Parser) vorgestellt werden. Auch im Bereich der Codeoptimierung werden zur Registeroptimierung verschiedene Verfahren mit unterschiedlichen Voraussetzungen vorgestellt. Der Aufbau der Vorlesung folgt im Wesentlichen dem Buch von Aho, Lam, Sethi, Ullman, das als Compilerbauklassiker gelten darf. In der Übung und dem angeschlossenen kleinen Praktikum werden die vorgestellten Methoden an kleinen Beispielen, die die Studierenden selbständig durchführen müssen, praktisch vertieft. Dabei findet in einigen Teilen auch ein Compilergenerator (typischerweise ANTLR) Verwendung, um den Studierenden den praktischen Nutzen eines solchen Tools zu demonstrieren. |
Literaturempfehlungen | **Essentiell:** - Folienskript (wird über das StudIP fortlaufend in der Vorlesung zur Verfügung gestellt) **Empfohlen:** - Aho, Lam, Sethi, Ullman: Compilers. Principles, Techniques, and Tools |
Links | |
Unterrichtssprache | Deutsch |
Dauer in Semestern | 1 Semester |
Angebotsrhythmus Modul | |
Aufnahmekapazität Modul | unbegrenzt |
Modulart | Wahlpflicht / Elective |
Modullevel | AS (Akzentsetzung / Accentuation) |
Lehr-/Lernform | V+Ü |
Vorkenntnisse | Theoretische Informatik II |
Lehrveranstaltungsform | Kommentar | SWS | Angebotsrhythmus | Workload Präsenz |
---|---|---|---|---|
Vorlesung | 2 | WiSe | 28 | |
Übung | 2 | WiSe | 28 | |
Präsenzzeit Modul insgesamt | 56 h |
Prüfung | Prüfungszeiten | Prüfungsform |
---|---|---|
Gesamtmodul | Am Ende der Vorlesungszeit |
Mündliche Prüfung |