MLU
Vorlesung: Übersetzerbau I - Details
Sie sind nicht in Stud.IP angemeldet.

Allgemeine Informationen

Veranstaltungsname Vorlesung: Übersetzerbau I
Semester WS 2021/22
Aktuelle Anzahl der Teilnehmenden 17
Heimat-Einrichtung Leitung des Instituts für Informatik
beteiligte Einrichtungen Praktische Informatik (Softwareengineering)
Veranstaltungstyp Vorlesung in der Kategorie Offizielle Lehrveranstaltungen
Erster Termin Donnerstag, 14.10.2021 10:30 - 12:00, Ort: Seminarraum 1.03 [VSP 1] (Informatik)
Voraussetzungen Bachelorabschluss in einem Informatikstudiengang bzw. Besuch aller Pflichtmodule im Lehramt Informatik
Lernorganisation Vorlesung mit Übung. Übungen werden nach Bedarf angeboten und befinden sich nicht als eigene Veranstaltung im Stud.IP
Studiengänge (für) Informatik (Master), Bioinformatik (Master), Wirtschaftsinformatik (Master)
Informatik (Lehramt)
SWS 4
Sonstiges Basismodul für die Vertiefungsrichtung Softwaretechnik und Übersetzerbau
ECTS-Punkte 5

Themen

Kapitel 2: Spracheigenschaften, Kapitel 2.5: Umgebungsmodell und abstrakte Maschinen, Kapitel 3: Maschineneigenschaften, Kapitel 4: Datenstrukturen im Übersetzer, Kapitel 5: Lexikalische Analyse, Kapitel 6: Syntaxanalyse (Abschnitt 6.1 und 6.2), Kapitel 6.3: LL-Automaten (Kapitel 6.3.1 und 6.3.2 LL(k)-Grammatiken und Automaten), Kapitel 6.3: LL-Automaten Teil 2 (Abschnitte 6.3.3 SSL(k)-Grammatiken und Automaten, Kapitel 6.3.4 Implementierung), Kapitel 6.4 LR-Automaten Teil 1 (Abschnitt 6.4.1 LR(k)-Grammatiken), Kapitel 6.4 LR-Automaten Teil 2 (Abschnitt 6.4.2 LR(k)-Automaten), Kapitel 6.4 LR-Automaten Teil 3 (Abschnitt 6.4.3 Implementierung von LR(1)-Automaten), Kapitel 6.4 LR-Automaten Teil 4 (Abschnitt 6.4.4 SLR(k)-Grammatiken), Kapitel 6.4 LR-Automanten Teil 5 (Abschnitt 6.4.5 LALR(kI-Automten und Grammatien), Kapitel 6.5 Behandlung von Syntaxfehlern, Kapitel 6.6: Aufbau von Abstrakten Syntaxbäumen, Kapiitel 7: Attributierte Grammatiken (Abschnitt 7.1), Kapitel 7.2: Grundkonzepte Attributierte Grammatiken Teil 1 (Abschnitt 7.2.1: Einleitung), Kapitel 7.2 Grundkonzepte attributierter Grammatiken Teil 2 (Abschnitt 7.2.2: Konsistenz und Vollständigkeit), Kapitel 7.2 Grundkonzepte attributierter Grammatiken Teil 3 (Abschnitt 7.2.3 Wohldefinierte Attributierte Grammatiken), Kapitel 7.2 Grundkonzepte attributierter Grammatiken Teil 4 (Abschnitt 7.2.4: Absolut Azyklische Attributierte Grammatiken), Kapitel 7.3 Berechnungsstrategien Teil 1 (7.3.1 Einleitung und 7.3.2 Zerlegte Attributierte Grammatiken), Kapitel 7.3 Berechnungsstrategien Teil 2 (Kapitel 7.3.3 Vordefinierte Berechnungsstrategien), Kapitel 7.3 Berechnungsstrategien Teil 3 (Kapitel 7.3.4 Geordnete Attributierte Grammatiken), Kapitel 7.4 Generierung von Implementierungen für attributierte Grammatiken, Kapitel 8 Semantische Analyse (Kapitel 8.1 Einleitung), Kapitel 8.2 Namensanalyse Teil 1 (Abschnitt 8.2.1 Einleitung), Kapitel 8.2 Namensanalyse Teil 2 (Abschnitt 8.2.2 Erweiterungen attributierter Grammatiken), Kapitel 8.2 Namensanalyse Teil 3 (Abschnitt 8.2.3 Definitionstabellen), Kapitel 8.2 Namensanalyse Teil 4 (Abschnitt 8.2.4 Typische Attributierungen für Namensanalysen), Kapitel 8.3 Typanalyse, Kapitel 8.4 Operatoridentifikation, Kapitel 9 Zwischencodeerzeugung (Kapitel 9.1 Einleitung), Kapitel 9.2 Abstrakte Maschinen, Kapitel 9.3 Speicherabbildung, Kapitel 9.4 Baumtransformationen, Kapitel 9.5 Konstruktion von Transformationsregeln, Kapitel 10 Teil 1 (Codeselektion), Kapitel 10 Teil 2 (Registerzuteilung, Assemblieren, Binden)

Studienbereiche

Modulzuordnungen

Kommentar/Beschreibung

Ziel der Vorlesung ist die Vermittlung von Grundlagen und Techniken zum Erbauen von Übersetzern (engl. Compiler). Diese Techniken sind nicht nur im Übersetzerbau einsetzbar, sondern generell, wenn textuelle oder visuelle Eingaben verarbeitet werden müssen - insbesondere, wenn auch deren Konsistenz vor einer Weiterverarbeitung überprüft werden muss.

Übersetzer können bereits seit den 80er Jahren des vergangenen Jahrhunderts automatisch aus Spezifikationen erzeugt werden. Die Vorlesung behandelt daher in erster Linie die theoretischen Grundlagen der Spezifikationen, die Grundlagen der Generierung sowie das Erstellen solcher Spezifikationen. In den Übungen werden sowohl die Grundlagen vertieft als auch ein (kleiner) Übersetzer mit Hilfe eines Übersetzergenerators gebaut.


Inhalt:

1. Einleitung/Architektur von Übersetzern

2. Eigenschaften von Programmiersprachen

3. Reale und abstrakte Maschinen

4. Abstrakte Programmrepräsentationen

5. Grundlagen aus der Theorie formaler Sprachen

6. Lexikalische Analyse

7. Syntaktische Analyse

8. Attributierte Grammatiken

9. Semantische Analyse

10. Zwischencodeerzeugung

11. Codeerzeugung

12. Optimierung