INF.08062.03 - Übersetzerbau (Vollständige Modulbeschreibung)
INF.08062.03 | 5 CP |
---|---|
Modulbezeichnung | Übersetzerbau |
Modulcode | INF.08062.03 |
Semester der erstmaligen Durchführung | |
Fachbereich/Institut | Institut für Informatik |
Verwendet in Studiengängen / Semestern |
|
Modulverantwortliche/r | |
Weitere verantwortliche Personen |
Prof. Dr. Wolf Zimmermann |
Teilnahmevoraussetzungen | |
Kompetenzziele | Dieses Modul soll die TeilnehmerInnen befähigen, Übersetzer sowie andere Programme, die textuelle oder visuelle Eingaben verarbeiten, mit Hilfe von Werkzeugen zu erstellen und deren Grundlagen zu verstehen. Insbesondere sollen auch Grundlagen zur Erstellung von Softwareentwicklungswerkzeugen gelegt werden. |
Modulinhalte | Übersetzertechnologie ist die Grundlagentechnologie für die Konstruktion von Softwarewerkzeugen. Dies reicht von Analysewerkzeugen in Entwicklungsumgebungen über Modell-basierte Codegeneratoren (im Zusammenhang mit Modell-basierter Entwicklung) bis hin zu klassischen Übersetzern. Es wird gezeigt, dass die Konstruktion von Übersetzern selbst ein frühes Beispiel von Modell-basierter Entwicklung ist. Deshalb wird u.A. auch die Generierung von Übersetzern und Analysewerkzeugen behandelt. Wann immer eine Anwendung textuelle Eingaben verarbeiten muss, ist die Analyse der grammatikalischen Strukturen (Syntaxanalyse), deren Bedeutung (semantische Analyse) und die Generierung von Information (Back-End) notwendig. Während die ersten beiden Aufgaben genereller Natur für aller Arten textueller Eingaben sind, ist die Informationsgenerierung von der konkreten Anwendung abhängig. Daher vermittelt das Modul nicht nur Kenntnisse in klassischer Übersetzertechnologie sondern legt auch die Basis für die Konstruktion von Werkzeugen zur Verarbeitung textueller Information. 1. Korrektheit und Architekturen von Übersetzern: Korrektheitsbegriff aus wissenschaftlicher Sicht, Unterschied Übersetzer-Interpretierer, Architekturen von Übersetzern und Softwarewerkzeuge, Übersetzertechnologie in Modell-basierten Codegeneratoren, Einsatz von Übersetzertechnologie in anderen Disziplinen. 2. Sprach- und Maschineneigenschaften: Konzepte höherer Programmiersprachen sowie Maschinensprachen und deren Auswirkung auf Übersetzerkonstruktion 3. Zwischensprachen: technische und wissenschaftliche Begründungen zur Einführung von Zwischensprachen. Grundsymbolfolgen, abstrakte und attributierte Syntaxbäume, Kontrollflussgraphen und Sichten auf diesen, Zielbaum, Binärcode 4. Lexikalische Analyse: Schnittstellen, Grundlagen der Generierung der lexikalischen Analyse aus regulären Ausdrücken, Praxisprobleme bei endlichen Automaten und deren Lösung 5. Syntaxanalyse: Top-Down und Bottom-Up Syntaxanalyse; LL(k)- und SLL(k) Grammatiken; LR(k)-, SLR(k)- und LALR(k)-Grammatiken. Wissenschaftliche Grundlagen der Generierung/Implementierung von Top-Down-Parsern (aus SLL(1)-Grammatiken) und Bottom-Up-Parsern (aus LALR(1)-Grammatiken). Integration von Fehlerbehandlung in die Syntaxanalyse, Integration des Aufbau des abstrakten Syntaxbaums in die Syntaxanalyse 6. Semantische Analyse: Attributierte Grammatiken und deren Teilklassen, wissenschaftliche Grundlagen der Generierung von Auswertern für geordnete attributierte Grammatiken. Verwendung attributierte Grammatiken für Namensanalyse, Typanalyse und Operatoridentifikation. Definitionstabellen und deren Implementierung. 7. Zwischencodeerzeugung: Wissenschaftliche Grundlagen und Konzepte von Baumtransformationen. Spezifikation der Zwischencodeerzeugung durch Baumtransformationen. Generierung der Zwischencodeerzeugung aus Baumtransformationen. 8. Codeerzeugung: Spezifikation der Codeerzeugung durch Makroexpansion, Entscheidungstabellen und Termersetzungssystemen. Wissenschaftlich-theoretische Grundlagen der Termersetzungssysteme: reguläre Baumgrammatiken und -automaten. Generierung der Codeerzeugung unter Optimalitätskriterien. Registerzuteilungsverfahren. 9. Assemblierung: Laden und Binden. Überführung in Binärcode. |
Lehrveranstaltungsformen |
Vorlesung (3 SWS)
Übung (1 SWS) Kursus |
Unterrichtsprachen | Deutsch, Englisch |
Dauer in Semestern | 1 Semester Semester |
Angebotsrhythmus Modul | jedes Wintersemester |
Aufnahmekapazität Modul | unbegrenzt |
Prüfungsebene | |
Credit-Points | 5 CP |
Modulabschlussnote | LV 1: %; LV 2: %; LV 3: %. |
Faktor der Modulnote für die Endnote des Studiengangs | 1 |
Hinweise | Basismodul für die Vertiefungsrichtung "Softwaretechnik und Übersetzerbau", vertiefendes Modul für die Vertiefungsrichtung "eHumanities" |
Modulveranstaltung | Lehrveranstaltungsform | Veranstaltungstitel | SWS | Workload Präsenz | Workload Vor- / Nachbereitung | Workload selbstgestaltete Arbeit | Workload Prüfung incl. Vorbereitung | Workload Summe |
---|---|---|---|---|---|---|---|---|
LV 1 | Vorlesung | Vorlesung | 3 | 0 | ||||
LV 2 | Übung | Übung | 1 | 0 | ||||
LV 3 | Kursus | Selbststudium und Bearbeitung der Übungsaufgaben | 0 | |||||
Workload modulbezogen | 150 | 150 | ||||||
Workload Modul insgesamt | 150 |
Prüfung | Prüfungsvorleistung | Prüfungsform | |
---|---|---|---|
LV 1 | |||
LV 2 | |||
LV 3 | |||
Gesamtmodul | Bearbeitung aller Übungsaufgaben |
mündl./schriftl./elektron. Prüfung |
|
Wiederholungsprüfung |
Regularien | Teilnahmevoraussetzungen | Angebotsrhythmus | Anwesenheitspflicht | Gewicht an Modulnote in % |
---|---|---|---|---|
LV 1 | Wintersemester | Nein | % | |
LV 2 | Wintersemester | Nein | % | |
LV 3 | Wintersemester | Nein | % |