Compilerbau 2017
Vorlesung an der DHBW Stuttgart, 2017.
Stephan
Schulz
|
Inhalte
In der Geschichte der Informatik ist eine Vielzahl von
Programmiersprachen entstanden. Diese erlauben es uns, Programme so
eindeutig zu beschreiben, dass sie von einer Maschine ausgeführt
werden können. Dabei besteht ein großer Abstand zwischen verschiedenen
Hochsprachen, die für die Beschreibung von Algorithmen und
Domänenwissen optimiert sind, und den verschiedenen Formen von
Maschinensprache, die von einer (echten oder virtuellen) Maschine
direkt ausgeführt werden können.
Dieser Abstand wird von Compilern und Interpretern
überbrückt. In dieser Vorlesung beschäftigen wir uns mit Grundlagen
und Umsetzung von Konzepten des Compilerbaus. Wir wollen dabei unter
anderem die folgenden Fragen beantworten.
- Wie werden moderne Programmiersprachen beschrieben und implementiert?
- Wie funktionieren Compiler und Interpreter
- Wie werden hochsprachliche Konzepte in maschinennahe
Darstellung umgesetzt?
- Wie kann man strukturierte Daten (wie z.B. Programmtexte) auf
verschiedenen Ebenen darstellen und verarbeiten?
Im begleitenden Labor werden wir einen funktionsfähigen Compiler für
eine einfache Sprache entwickeln.
Unterlagen
- Folienskript 2017 (im Entstehen, Stand 10.5.2017)
- Folienskript vom letzten Jahr (vollständig, aber es werden sich
mindestens Kleinigkeiten ändern!)
- Software-Dokumentation
- Übungsklausur (2015)
- Klausur 2015
- Beispielcode
- Minimal C
- Das flex-File aus der
Vorlesung (Aufsummieren von Zahlen)
- Beispiel für Flex/Bison: Tischrechner
- Musterlösungen (zum Vergleichen, ausborgen, meckern)
- nanoLang