INF.08062.03 - Übersetzerbau (Complete module description)
INF.08062.03 | 5 CP |
---|---|
Module label | Übersetzerbau |
Module code | INF.08062.03 |
Semester of first implementation | |
Faculty/Institute | Institut für Informatik |
Module used in courses of study / semesters |
|
Responsible person for this module | |
Further responsible persons |
Prof. Dr. Wolf Zimmermann |
Prerequisites | |
Skills to be acquired in this module | 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. |
Module contents | Ü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. |
Forms of instruction |
Lecture (3 SWS)
Exercises (1 SWS) Course |
Languages of instruction | German, English |
Duration (semesters) | 1 Semester Semester |
Module frequency | jedes Wintersemester |
Module capacity | unlimited |
Time of examination | |
Credit points | 5 CP |
Share on module final degree | Course 1: %; Course 2: %; Course 3: %. |
Share of module grade on the course of study's final grade | 1 |
Reference text | Basismodul für die Vertiefungsrichtung "Softwaretechnik und Übersetzerbau", vertiefendes Modul für die Vertiefungsrichtung "eHumanities" |
Module course label | Course type | Course title | SWS | Workload of compulsory attendance | Workload of preparation / homework etc | Workload of independent learning | Workload (examination and preparation) | Sum workload |
---|---|---|---|---|---|---|---|---|
Course 1 | Lecture | Vorlesung | 3 | 0 | ||||
Course 2 | Exercises | Übung | 1 | 0 | ||||
Course 3 | Course | Selbststudium und Bearbeitung der Übungsaufgaben | 0 | |||||
Workload by module | 150 | 150 | ||||||
Total module workload | 150 |
Examination | Exam prerequisites | Type of examination | |
---|---|---|---|
Course 1 | |||
Course 2 | |||
Course 3 | |||
Final exam of module | Bearbeitung aller Übungsaufgaben |
mündl./schriftl./elektron. Prüfung |
|
Exam repetition information |
Prerequisites and conditions | Prerequisites | Frequency | Compulsory attendance | Share on module grade in percent |
---|---|---|---|---|
Course 1 | Winter semester | No | % | |
Course 2 | Winter semester | No | % | |
Course 3 | Winter semester | No | % |