MLU
Lecture: Übersetzerbau I - Details
You are not logged into Stud.IP.

General information

Course name Lecture: Übersetzerbau I
Semester WS 2020/21
Current number of participants 26
Home institute Leitung des Instituts für Informatik
participating institutes Praktische Informatik (Softwareengineering)
Courses type Lecture in category Offizielle Lehrveranstaltungen
First date Thursday, 05.11.2020 10:30 - 12:00, Room: Seminarraum 1.03 [VSP 1] (Informatik)
Type/Form Vorlesung online asynchron (opencast); Übung: Präsenz (2SWS von KW 47 2020 - KW 42021)
Pre-requisites Bachelorabschluss in einem Informatikstudiengang bzw. Besuch aller Pflichtmodule im Lehramt Informatik
Learning organisation 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
Miscellanea Basismodul für die Vertiefungsrichtung Softwaretechnik und Übersetzerbau
ECTS points 5

Topics

Kapitel 1: Einleitung, Kapitel 2: Programmiersprachen (Kapitel 2.1-Kapitel 2.4), Kapitel 2.5: Umgebungsmodell und abstrakte Maschinen, Kapitel 3: Maschineneigenschaften, Übung, Kapitel 4: Datenstrukturen im Übersetzer, Kapitel 5: Lexikalische Analyse, Kapitel 6: Syntaxanalyse (Kapitel 6.1-Kapitel 6.2), Videosprechstunde, Kapitel 6.3 LL(k)-Grammatiken (6.3.1-6.3.2), Kapitel 6.3 LL-Automaten (SLL(k)-Grammatiken und Implementierung), Kapitel 6.4.1: LR(k)-Grammatiken, Kapitel 6.4.2 LR(k)-Automaten, Kapitel 6.4.3 Implementierung, Kapitel 6.4.4 SLR(k)-Grammatiken und Automaten, Kapitel 6.4.5 LALR(k)-Grammatiken und -Automaten, Kapitel 6.5 Behandlung von Syntaxfehlern, Kapitel 6.6: Aufbau der abstrakten Syntaxbäume, Kapitel 7: Attributierte Grammatiken, Videosprechstunde, Kapitel 7.2: Grundkonzepte attributierter Grammatiken, Kapitel 7.2.2 Konsistenz und Vollständigkeit, Kapitel 7.2.3 Wohldefinierte attributierte Grammatiken, Kapitel 7.2.4 Absolut Azyklische Grammatiken, Kapitel 7.3 Berechnungsstrategien (Kapitel 7.3.2 Zerlegte attributierte Grammatiken), Kapitel 7.3.3 Vordefinierte Berechnungsstrategien, Kapitel 7.3.4: Geordnete attributierte Grammatiken, Kapitel 7.4: Generierung von Implementierungen für attributierte Grammatiken, Kapitel 8: Semantische Analyse, Kapitel 8.2: Namensanalyse, Kapitel 8.2.2: Erweiterungen attributierter Grammatiken, Kapitel 8.2.3: Definitionstabellen, Kapitel 8.2.4 Typische Attributierungen für Namensanalyse, Kapitel 8.3 Typanalyse, Kapitel 8.4: Operatoridentifikation, Kapitel 9: Zwischencodeerzeugung (Einleitung), Kapitel 9.2: Abstrakte Maschinen, Kapitel 9.3: Speicherabbildung, Kapitel 9.4: Baumtransformationen, Kapitel 9.5: Konstruktion von Transformationsregeln, Kapitel 10: Codeerzeugung: Teil 1: Codeselektion, Kapitel 10: Codeerzeugung: Teil 2: Registerzuteilung, Assemblieren und Binden

Rooms and times

Seminarraum 1.03 [VSP 1] (Informatik)
Thursday: 10:30 - 12:00, weekly (9x)
Thursday: 10:30 - 12:00, weekly (5x)
No room preference
Thursday: 15:30 - 17:00, weekly
Thursday, 17.12.2020 15:30 - 17:00

Fields of study

Module assignments

Comment/Description

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