Willkommen zum Compilerbau
Vorlesung
Es gibt ein Vorlesungsskript , in dem schrittweise eine Compiler als Beispielprojekt entwickelt wird. Der Quelltext der Anwendung aus dem Skript, befindet sich auf dieser Seite.
Praktikum
Die Prüfungsform besteht in einer praktischen Tätigkeit. In dieser ist in Einzelarbeit ein Compilerprojekt zu realisieren. Das Projekt ist zu dokumentieren und in einem Vortrag vorzustellen.
Anforderungen an Compilerbau Projekt
Zu schreiben ist ein Compiler, der eine eigene Quellsprache in eine Maschinensprache übesetzt.
- Die erzeugten Maschinenprogramme müssen ausführbar sein. (Assmblerprogramme in der Regel mit einer c-main gelinkt, JVM Programme auf der JVM ausführbar.)
- Als Maschinensprache, kommen Assembler, JVM Byte-Code oder Intermediate Language in Frage. Als Implementierungssprache sind Java, Haskell, C#, C, C++ ... denkbar.
- Als Generatortool sind Parsergeneratoren wie antlr, javacc, sablecc, bisom/flex, happy, citron denkbar.
- Es muss eine ausreichende Menge von Beispiel-/Testprogramme geben.
- Das Projekt soll auf dem git-lab Repository der Informatik versioniert sein. https://gitlab.cs.hs-rm.de/
- Sprachfeatures der Quellsprache:
Muss:- Ausdrücke der Arithmetik, Vergleiche Bool'sche Operatoren mit Operator-Präzedenzen
- Fallunterscheidung (z.B. mit if)
- Funktionsdefinitionen und Funktionsaufrufe.
- Rekursive Funktionen.
- veränderbare Variablen
- Schleifen
- strukturierte Daten (Bei der Generierung von Java Byte Code sind strukturierte Daten Pflicht.)
Bewertungsrahmen:
- Gibt es unterschiedliche Typen, die gecheckt werden?
- Wie komplex ist die Quellsprache?
- Wie ausführlich ist das Testszenario?
- Gibt es strukturierte Daten?
- Wurden Optimierungen durchgeführt? (Tail Call?)
- Lässt sich der Compiler gut verwenden und eigene Programm übersetzen und ausführen?
- Wie gut ist das Benutzerhandbuch?