Konzepte, Methoden und Algorithmen zur Implementierung imperativer und objektorientierter Programmiersprachen auf eine konkrete Programmiersprache übertragen können
Größere Programme nach den Regeln der Softwaretechnik in kleinen Teams verstehen, erweitern und vertiefen können
Über Erfahrung in der projektbezogenen Problemlösung in kleinen Teams verfügen.
Lerninhalte
Implementierung der lexikalischen Analyse (Transformation regulärer Definitionen in endliche Automaten, Implementierung von Symboltabellen).
Implementierung der Syntaxanalyse (Transformation von kontextfreien Grammatiken in absteigende Parsierer, Implementierung der Fehlerbehandlung und des abstrakten Syntaxbaums).
Implementierung der Kontext-Analyse (Entwicklung rekursiver Baumauswerter, Implementierung von Vereinbarungstabellen).
Erzeugung von abstraktem Maschinencode für eine objektorientierte Programmiersprache.
Prüfungsformen
Semesterarbeit (Implementierung eines Übersetzers)
Dokumente (Skripte, Programme, Literatur, usw.)
A. W. Appel: Modern Compiler Implementation in Java, Cambridge University Press 1998.
D. A. Watt und D. F. Brown: Programming Language Processors in Java - Compilers and Interpreters, Prentice-Hall, 2000.
Weiteres Lehrmaterial ist auf der Webseite des Veranstaltung zu finden:
Entwicklungsumgebung für die Implementierung von Übersetzern (Oberon-System)
Ein Übersetzer und Interpreter (das PL0-System) • Aufgabenbeschreibung
Lehrende: Dr. B. Hoffmann, Dr. T. Röfer, Dr. B. Gersdorf