Universität Stuttgart Institut für Softwaretechnik Abteilung Programmiersprachen Prof. Dr. Erhard Plödereder Bachelorarbeit Anbindung von SKilL an Haskell Binding SKilL to Haskell Hintergrund Im Rahmen der Softwareanalyse fallen große Datenmengen an, die zwischen verschiedenen Analysephasen serialisiert werden müssen. Um in verschiedenen Analysephasen bereits vorhandene Bibliotheken nutzen zu können, ist es manchmal erforderlich, einzelne Phasen in unterschiedlichen Programmiersprachen zu implementieren. So kann es z. B. vorkommen, dass das Front-End in C++ implementiert ist, eine Analyse in Ada, eine weitere in Python und die Benutzeroberfläche in Java. Um dieser Problematik zu begegnen, wurde die Sprache SKilL entworfen, die es erlaubt, Datenformate zu beschreiben. Diese eignen sich zur plattform- und sprachunabhängigen Serialisierung und sind, im Gegensatz zu existierenden Lösungen wie etwa XML, auf sehr große Datenmengen ausgelegt. Siehe auch https://github.com/skill-lang/skill Aufgabenstellung Derzeit existieren SKilL-Anbindungen lediglich für statisch typisierte objektorientierte Sprachen. Aufgabe dieser Arbeit ist es, zu zeigen, dass es ohne weiteres möglich ist, SKilL an Sprachen anzubinden, die weder statisch typisiert noch objektorientiert sind. Dafür müssen folgende Aufgaben erledigt werden: • Für die Sprache Haskell muss ein Generator entwickelt werden, der mindestens die SKilL-Kernsprache sowie das Feature documented abdeckt. • Es soll untersucht werden, inwieweit die Organisation der Felddaten im existierenden SKilL Binärformat genutzt werden kann, um lazy evaluation in Haskell möglichst performant zu unterstützen. • Die Interoperabilität zwischen den neu geschaffenen Anbindungen und einer bereits existierenden muss durch Tests demonstriert werden. • Optional können Vorschläge für Sprachanpassungen oder Erweiterungen gemacht werden. • Die Ergebnisse müssen in einem Zwischen- und einem Abschlussvortrag präsentiert werden. Ein Codegenerator wird zur Verfügung gestellt. Ferner gibt es eine formale Spezifikation der Serialisierungssprache und des Serialisierungsformats sowie eine Reihe von Beispielen, Testfällen und Testdaten. Da die in dieser Arbeit entstehenden Codegeneratoren im Bauhaus-System in beliebigen Kontexten verwendet werden sollen, wird eine Lizenz für die uneingeschränkte Nutzung der Generatoren und des generierten bzw. zugebundenen Codes, wie etwa unter der M.I.T.-Lizenz, erwartet. Betreuer: Raum: email: Timm Felden 1.218 [email protected] Prüfer: Prof. Dr. Erhard Plödereder