Modulcode: | Inf-CB |
Englische Bezeichnung: | Compiler Construction |
Modulverantwortliche(r): | Prof. Dr. Michael Hanus |
Turnus: | unregelmäßig (WS16/17 SS18 WS19/20 WS21/22 SS23) |
Präsenzzeiten: | 4V 2Ü |
ECTS: | 8 |
Workload: | 60 Std. Vorlesung, 30 Std. Präsenzübung, 150 Std. Selbststudium |
Dauer: | ein Semester |
Modulkategorien: | BSc-Inf-WP (BSc Inf (21)) WI (BSc Inf (15)) MSc-Inf-WP (MSc Inf (21)) 2F-MEd-Inf-WP (MEd-Hdl Inf (21)) 2F-MA-Inf-WP (2F-MA Inf (21)) MSc-WInf-WP-Inf (MSc WInf (21)) PI (MSc Inf (15)) WI (MSc Inf (15)) WI (MSc WInf (15)) WI (MEd Inf) WPI (MEd Inf) IS (SA) (MSc Inf (2-Fach)) WI (MSc WInf) IG (MSc Inf) IS (MSc Inf) MV (MSc Inf) |
Lehrsprache: | Deutsch |
Voraussetzungen: | Inf-TGI Inf-FortProgP infDP-01a |
Die Übersetzung von Programmiersprachen ist eine wohldefinierte aber dennoch komplexe Aufgabe. Zur Beherrschung dieser Komplexität wurde eine Zerlegung in einzelne Übersetzungsaufgaben entwickelt, die heute in dieser oder ähnlicher Form in den meisten Übersetzern verwendet wird. Nach einer generellen Einführung in die Implementierung von Programmiersprachen mittels Interpretern, Übersetzern und partiellen Auswertern werden in dieser Vorlesung die einzelnen Übersetzungsaufgaben und die bekannten Lösungsansätze dazu vorgestellt. Im Einzelnen werden behandelt: Programmiersprachen, Interpreter, Übersetzer, partielle Auswerter, lexikalische Analyse, syntaktische Analyse, semantische Analyse, Codeerzeugung
Die Studierenden erlernen die Techniken, um höhere Programmiersprachen auf herkömmlichen Rechnerarchitekturen effizient zu implementieren. Sie erlernen hierbei das gesamte Spektrum vom Einlesen strukturierter Sätze über deren Manipulation bis zur effizienten Codeerzeugung auf der Basis geeigneter Laufzeitstrukturen. Nach Abschluss dieses Moduls sind die Studierenden in der Lage, Werkzeuge zum Übersetzerbau zu entwickeln und einzusetzen beziehungsweise an neuen Techniken zur Realisierung von Sprachen (z.B. domänenspezifische Sprachen, Spezifikationssprachen) weiterzuarbeiten.
Die Übersetzung von Programmiersprachen ist eine wohldefinierte aber dennoch komplexe Aufgabe. Zur Beherrschung dieser Komplexität wurde eine Zerlegung in einzelne Übersetzungsaufgaben entwickelt, die heute in dieser oder ähnlicher Form in den meisten Übersetzern verwendet wird. Nach einer generellen Einführung in die Implementierung von Programmiersprachen mittels Interpretern, Übersetzern und partiellen Auswertern werden in dieser Vorlesung die einzelnen Übersetzungsaufgaben und die bekannten Lösungsansätze dazu vorgestellt. Im Einzelnen werden behandelt:
Grundkenntnisse prozeduraler Sprachen und Kenntnisse der Programmiersprache Haskell, die z.B. im Modul "Deklarative Programmierung" (infDP-01a) oder im Modul "Fortgeschrittene Programmierung" (Inf-FortProgP) verrmittelt werden, sowie Grundkenntnisse der theoretischen Informatik (Grammatiken, endliche Automaten u.ä.).
Mündliche Abschlussprüfung am Vorlesungsende