MLU
INF.08062.03 - Übersetzerbau (Complete module description)
Original version English
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
  • Bioinformatik (MA120 LP) (Master) > Bioinformatik BioinformatikMA120, Version of accreditation valid from SoSe 2023 > Softwaretechnik und Übersetzerbau (Anteil gem. § 5 Abs. 4-6, Anlage 2)
  • Informatik (MA120 LP) (Master) > Informatik InformatikMA120, Version of accreditation valid from SoSe 2023 > Basismodule der Vertiefungsrichtung `Softwaretechnik und Übersetzerbau`
  • Informatik (MA120 LP) (Master) > Informatik InformatikMA120, Version of accreditation valid from SoSe 2023 > Vertiefende Module der Vertiefungsrichtung `eHumanities`
  • Wirtschaftsinformatik (Business Information Systems) (MA120 LP) (Master) > Wirtschaftsinformatik WirtschaftsinformatMA120, Version of accreditation valid from WS 2020/21 > 2.2 Informatik
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 %