Zum Inhalt
Fakultät für Informatik

Übersetzerbau

  • Veranstalter: Dr. Oliver Rüthing
  • Vorlesung (2 SWS)
  • Starttermin: Donnerstag, 11.4.
  • Ort: OH 14, E23
  • Zeit: Donnerstag, 10:15 -11:45 Uhr

Kommentar

Übersetzer für höhere Programmiersprachen sind große und komplexe Softwaresysteme. Um die korrekte Übersetzung von Programmen einer Quellsprache in Code einer konkreten oder virtuellen Maschine vorzunehmen hat man dem Gedanken des "Separation of Concerns" folgend diese Aufgabe in eine Vielzahl beherrschbarer Teilaufgaben zerlegt. Beginnend in den 50er Jahren sind die Phasen eines Compilers Gegenstand intensiver Forschung gewesen. Daher lässt sich zweifelsfrei feststellen, dass das Gebiet des Übersetzerbaus sicher eines der am besten erforschten und durchdrungenen Teilgebiete der Informatik ist. Insbesondere finden hier Resultate der theoretischen Informatik, wie sie in Vorlesungen wie GTI vermittelt werden, ein reiches praktisches Anwendungsgebiet.  


Die Lehrveranstaltung behandelt Grundlagen des Entwurfs und der Realisierung von Compilern. Insbesondere werden wir uns einen Überblick über sämtliche relevante Phasen eines optimierenden Compilers verschaffen:   Lexikalische Analyse (reguläre Sprachen, endliche Automaten, Scanner); konkrete und abstrakte Syntax; Syntaxanalyse (LL- und LR- Parser); statisch semantische Analyse; Codeerzeugung, Laufzeitsystem und Programmoptimierung. Zusätzlich werden auch Themen wie virtuelle Maschinen, Bootstrapping und Übersetzung für deklarative Sprachen angeschnitten. 

Übungsinfos

In den Übungen wird durch konkrete Aufgabenstellungen die Möglichkeit gegeben, das in der Vorlesung "Übersetzerbau" theoretisch erworbene Wissen anzuwenden und zu festigen. Durch eine strukturierte Rekapitulation des Stoffes stellen die Übungen eine gute Voraussetzung für eine erfolgreiche Teilnahme an einer Prüfung über die Vorlesung "Übersetzerbau" dar. Die erfolgreiche Teilnahme an der Übung ist notwendige Studienleistung für die Modulprüfung. Die genauen Modalitäten werden im Moodle  bekanntgegeben.

Klausuren

Die  Modulprüfung findet in Form einer 120-minütigen Klausur statt. Die Klausurtermine sind voraussichtlich:

  • Ersttermin: Donnerstag, 01.08.2024,  ca. 8:00-10:15 Uhr
  • Zweittermin: Dienstag, 1.10.2024, ca. 8:00-10:15 Uhr

Material

Die Vorlesungsmaterialien (Folien, Videos, Konferenzlinks Übungsblätter) stehen in einem Moodle-Arbeitsraum  zur Verfügung. Die Registrierung für den Raum soll ausschließlich über das LSF erfolgen. 

Literatur

  • T. Mogensen. Introduction to Compiler Design. Undergraduate Topics in Computer Science, 2011, Springer-Verlag.
  • R. Wilhelm, H. Seidl, S. Hack. Übersetzerbau - Band 2. Syntaktische und semantische Analyse, 2012, Springer-Verlag.
  • H. Seidl, R. Wilhelm, S. Hack. Übersetzerbau - Band 3. Analyse und Transformation, 2010, Springer-Verlag.
  • A. Aho,  M. Lam,  R. Sethi, J.D. Ullman. Compilers: Principles, Techniques, & Tools. 2nd edition, 2007, Addison-Wesley.