Umfang

Dieses Thema kann als Bachelorarbeit oder Teil einer Projektarbeit bearbeitet werden.

Empfohlene Vorkenntnisse

  • Prolog Kenntnisse
  • Erfahrung im Umgang mit Buildtools wie gradle, lein, ant, etc.

Problem

Prolog ist eine Programmiersprache, die weit bekannt ist, aber relativ selten produktiv eingesetzt wird. Eine Hürde ist, dass das Tooling rund um Prolog sehr schlecht ist. Insbesondere gibt es kein Werkzeug, um unabhängig von der Implementierung Abhängigkeiten einzubinden (SWI Prolog hat dafür einen eigenen Paketmanager).

Im Rahmen dieser Arbeit soll ein Tool entwickelt werden, mit dem man Projekte in Prolog besser verwalten kann. Dazu soll es möglich sein, Code in Bibliotheken zu verpacken, die beispielsweise auf Maven hochgeladen werden und von dort in anderen Projekten eingebunden werden können. Zudem soll es möglich sein, automatisiert Tests auszuführen. Dies ganze soll unabhängig von der verwendeten Prolog Implementierung möglich sein. Das Werkzeug selbst muss nicht unbedingt in Prolog geschrieben werden.

Minimalanforderungen

  • Erstellen von Bibliotheken
  • Management von Abhängigkeiten
  • Ausführen von allen Tests im Projekt

Variationen und Erweiterungen

  • Unterstützung von Kompilierung und Integration von C Extensions
  • Caching von Testergebnissen
  • Unterstützung von verschiedenen Profilen (Debugging, Production, …)
  • Bauen von Binärdateien
  • Gezielte Auflösung von Dependency-Konflikten

Kontakt

Philipp Körner
Raum 25.12.02.56
p.koerner@hhu.de