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.
|
|
|