Grundlagen des Übersetzerbaus

Dozenten:Philippsen, M.
Umfang:2 SWS (7,5 ECTS)
Anmerkung:Es ist keine Anmeldung erforderlich.
Termin(e) & Ort:
  • Dienstag, 08:15 - 09:45, 04.150
Zielgruppe:WPF CE-MA-INF (1.-4. Semester)
WPF INF-BA (5.-6. Semester)
WPF INF-DH-PS (5.-7. Semester)
WPF INF-MA (ab 1. Semester)
WPF IuK-DH-ES-INF2 (5.-7. Semester)
WF CE-BA-TW (5.-7. Semester)
WF IuK-BA (5.-6. Semester)
Inhalt:

Auf den ersten Blick erscheint es wenig sinnvoll, sich mit Übersetzerbau zu beschäftigen. Andere Themen scheinen wesentlich näher an der direkten Anwendbarkeit in der industriellen Praxis. Der erste Blick täuscht:

  • Übersetzer gehören wohl zu den am gründlichsten studierten mittelgroßen sequentiellen Software-Systemen. Man kann viel aus den Erfahrungen lernen, die im Laufe der Jahre gesammelt wurden.
  • In den Übungen, die die Vorlesung begleiten, werden Sie selbst einen (kleinen) Übersetzer entwickeln.
  • Für viele Teilnehmer wird dieses Projekt das erste größere Software-Projekt sein. Viele der Algorithmen aus dem Grundstudium werden angewendet.
  • Bei jedem von Ihnen verwendeten Übersetzer gehen Sie in der Regel davon aus, dass richtiger Coder erzeugt wird. In der Vorlesung erfahren Sie, wie das geforderte hohe Maß an Korrektheit und Zuverlässigkeit erreicht wird.
  • Sie erlangen ein Verständnis für Konzepte von Programmiersprachen und verstehen, welcher Maschinen-Code aus Sprachkonstrukten gemacht wird. Mit diesem Wissen im Hinterkopf verbessern Sie Ihre Fähigkeit, gute und effiziente Programme zu schreiben.
  • Übersetzer werden nicht nur für Programmiersprachen benötigt. Spezielle Übersetzer braucht man in vielen Bereichen des täglichen Informatik-Lebens z.B. zur Textformatierung, für Programmtransformationen, für aspektorientiertes Programmieren, für die Verarbeitung von XML, ...
  • Es gehört zu einer Ingenieur-Ausbildung, in der Lage zu sein, diejenigen Werkzeuge selbst zu fertigen, die man verwendet. Für Informatiker gehört daher ein Verständnis vom Innenleben eines Übersetzers zum Rüstzeug.

Themen der Vorlesung:

  • Übersetzungsprinzipien für imperative Sprachen
  • Struktur eines Übersetzers
  • Symbolentschlüssler und Zerteiler (Scanner und Parser)
  • Abstrakter Syntaxbaum
  • Symboltabellen, Umgebungen
  • Attributgrammatiken
  • Semantische Analyse, Typprüfung
  • Automatische Speicherbereinigung
  • Code-Erzeugung
  • Register Optimization
watermark seal