Software-Projekt

Themen

Themeneinteilung
Tinf
In diesem Semester wird das Software-Projekt für die technischen Informatiker (TInf) von Thorsten Behrens betreut werden. Das Projekt wird im Umfeld der Robotik durchgeführt werden. Nähere Informationen gibt es bei Torsten Behrens.
Inf, WInf, MInf
Für die übrigen Studiengänge wird ein zusammenhängendes Themengebiet bearbeitet werden, und zwar die Entwicklung eines Lua-Sprachsystems. Lua ist eine einfache und kleine Skriptsprache, die häufig in Anwendungen eingebettet wird, um Teile der Anwenung mit einer einfachen Sprache zu implementiern, sie kann aber auch als eigenständige Sprache genutzt werden. Die Sprache ist äußerst flexibel und enthält einige ungewöhnliche Features, die in traditionellen Sprachen so nicht vorhanden sind.
Architektur
Ein Lua-Sprachsystem gliedert sich in die aus dem Compilerbau bekannten klassischen Komponenten: Ein Compiler-Frontend mit lexikalischer und Syntaxanalyse, ein Backend das Code für eine Lua-VM generiert, einer virtuellen Maschine, dem Lua-Interpretierer und einem Laufzeitsystem, einer Bibliothek von Basisfunktionen, die zwingend vorhanden sein müssen zum Beispiel für Ein- und Ausgabe und String-Verarbeitung.
Teilaufgaben
Die oben beschriebenen Komponenten werden als Teilthemen in 2-er-Gruppen zu bearbeiten sein. Dabei können Komponenten durchaus auf unterschiedliche Weise und auswechselbar realisiert werden. Die einzelnen Teilaufgaben und deren Zusammenspiel werden in der Vorbesprechung vorgestellt werden. Erst nach dieser Vorstellung werden die Themen vergeben.
Literatur
Lua Home Page
Lua 5.1 Reference Manual
Programming in Lua (first edition)
Prototyp
in Haskell
Die Quellen als tar-Archiv
Voraussetzungen
Zum Ausprobieren des Prototyps wird ein ghc-Compiler >= Version 7 benötigt und einige Haskell-Bibliotheken. Hierzu kann man entweder die Bibliotheken, z.B parsec. mit cabal install parsec nachinstallieren. Einfacher geht es, wenn man sich anstatt des ghc die Haskell-Plattform installiert. In dem Paket sind alle verwendeten Bibliotheken schon enthalten.