Auf dieser Seite sind Themen für mögliche Abschlussarbeiten, Projekte und Masterpraktika aufgelistet. Nicht alle Themen eignen sich für alle Veranstaltungsformen - das richtet sich aber auch nach den Vorkenntnissen und kann bei Interesse am besten im persönlichen Gespräch ausgelotet werden.
Gerne übernehme ich nach Absprache auch die Betreuung von Arbeiten mit eigenen Themenideen aus unseren Interessensbereichen.
OpenRuleBench is a suite of benchmarks for analysing the performance and scalability of different rule engines. The original benchmarks were run first in 2009, an updated report was published in 2011. Since then, the benchmarks have not been re-run. In this work, we want to create an experimental setup to validate the original results, and re-run tests with modern rule engines. This could result in a public test server to compare existing and new logic programming systems and their strengths.
XPCE Compatibility for SWISH
XPCE was the way to go for graphical user interfaces with SWI-Prolog. But recently with SWISH, SWI-Prolog moved to the browser as the most important GUI, leaving XPCE unsupported and almost deprecated. We want to examine typical XPCE applications and provide mechanisms to convert them to SWISH applications.
Benchmarking CHR Systems
Bisecting Debugger for SWI-Prolog
Although it is hard to admit - most of the time we are actually not writing code but instead debug existing. Due to its good backtracking and tracing abilities, debugging in Prolog could benefit from a bisecting debugger as described by Michael Hendricks at Strange Loop 2014. In this work we want to enhance SWI-Prolog's built-in debugger with this functionality.
Interactive SLD Tree Exploration with Leaflet
Prolog Saved States for Process Duplication
SWI-Prolog comes with a powerful mechanism to pre-compile Prolog programs: Using saved states it is possible to bundle all machine-independent compiled resources. This technique is currently used to improve the startup time of a program. Since the saved state can be created dynamically, it could also be used to duplicate the running process, as described by Michael Hendricks at Strange Loop 2014. We want to examine and implement this technique for parallel Prolog computations.
Optimising Definite Clause Grammars
Definite Clause Grammars (DCG) can be easily written by hand and are therefore a good alternative to parser implementations based on LL(k), LF or PEG. Nevertheless such hand-written grammars tend to be not optimal: Several parts of the parse tree have to be evaluated several times for the same expression because of its backtracking nature. Using source-to-source transformation the DCG can be rewritten into an optimal version, which should be done in Prolog as part of this work.
Weitere Themen und Ideen können gerne im persönlichen Gespräch angesprochen werden.