Compiler und Programmtransformation im WS 2020/21
verantw. Hochschullehrer: | PD Dr. Henning Bordihn |
Studiengang: | Bachelor und Master |
Voraussetzungen: | Kenntnis des Stoffes aus Theoretischer Informatik I (Formale Grundlagen der Informatik und Maschinenmodelle) sowie Programmierung (Praxis der Programmierung) |
SWS: | 4 (2 V + 2 Ü) |
Credits: | 6 |
Termine
Vorlesung: | Donnerstag | 08:30-10:00 | 03.04.0.03+0.04 | erstmals am 05.11.20 |
Übung: | Donnerstag | 10:15-11:45 | 03.04.0.03+0.04 | erstmals am 05.11.20 |
Bis auf weieters beginnen wir um 9:00 Uhr (s.t.).
Ab sofort findet die Vorlesung als Zoom-Meeting statt.
Dem Zoom-Meeting beitreten: Folgen Sie dem Link in dieser Datei.
Inhalte
In modernen Ansätzen der Softwareentwicklung greift man immer häufiger auf spezialisierte Hochsprachen zurück, die auf Apekte der jeweiligen Anwendungsdomäne oder eine möglichst einfache Kommunikation mit Auftraggebern oder potenziellen Kunden zugeschnitten sind. Dies erlaubt eine Beschreibung der Systeme, die von technischen Details abstrahiert und ihre Validierung erleichtert.
Einen größeren Mehrwert erzielt man, wenn die Hochsprachen-Beschreibungen automatisch in ausführbare Sprachen transformiert werden können. Ein vergleichbarer Prozess wird auch von klassischen Compilern ausgeführt, die Beschreibungen in z.B. universellen Programmiersprachen in Maschinencode übersetzen.
In diesem Kurs werden die Methoden und Techniken des klassischen Compilerbaus behandelt. Darauf aufbauened wird dann erläutert, was bei der Definition von domänenspezifischen Hochsprachen zu beachten ist und wie die klassichen Compiler-Techniken auf die Transformation dieser Sprachen in andere Programmiersprachen angewendet werden können.
Die in der Vorlesung vorgestellten Techniken werden sowohl theoretisch beleuchtet als auch anhand konkreter Anwendungsszenarien im Rahmen der Übungen erprobt. Geeignete Softwaretools werden vorgestellt, von denen ausgewählte in zwei kleinen Projekten eingestzt werden.
Leistungserfassung
Als Zulassungsvoraussetzung sind zwei Miniprojekte erfolgreich zu bearbeiten und abzugeben.
Eine aktive Teilnahme an den Übungen wird erwartet.
Für die Note ist neben dem Übungsverhalten vor allem eine ca. 30-minütige mündliche Prüfung nach Abschluss der Lehrveranstaltungen ausschlaggebend.
Vorlesungsfolien
Einführung: Motivation, Basisbegriffe, Organisatorisches
Scanning (Lexikalische Analyse)
Parsing (Syntaktische Analyse)
Übungsaufgaben
Übungsaufgaben Serie 3 Zum 26.11. bitte nur Aufgabe 1 bearbeiten!
1. Projektaufgabe, 1. Teil (ANTLR-Projekt)
2. Projektaufgabe (Xtext-Projekt)