ps1ttacus blog

Bachelorarbeit

Im August 2023 habe ich meine Bachelorarbeit abgegeben. Nachdem ich das (erfolgreiche) Ergebnis bekommen habe, möchte ich die entstandene Anwendung auch hier veröffentlichen und ein wenig erklären. Ich werde hier nur sehr kurz auf die wichtigsten Punkte eingehen.
Screenshot der Anwendung
Gemeinsam mit meinem betreuenden Professor habe ich das Thema zugeschnitten: Entwicklung eines Werkzeugs zum interaktiven Entwurf kontextfreier Grammatiken.
Zugrunde liegt die Situation, dass es kein vernünftiges Tool für den interaktiven Entwurf kontextfreier Grammatiken (CFG) gab. Es gibt durchaus Werkzeuge, mit denen an CFGs gearbeitet werden kann, allerdings nicht in dem Sinne, dass explorativ eine neue Grammatik entstehen kann. Der Startpunkt für die Arbeit in diesem Tool sollte eine leere Oberfläche sein, in der das Alphabet, die Produktionsregeln und zu testende Wörter eingegeben werden könnten.

Kontextfreie Grammatiken?

Eine kontextfreie Grammatik ist dadurch ausgezeichnet, dass die linke Seite der Produktionsregel aus einem Nichtterminal und die rechte Seite aus einer Mischung aus Terminalen und Nichtterminalen besteht. Im Falle meiner Arbeit sind epsilon Produktionen (also diese, die das leere Wort erzeugen) nicht erlaubt. Im Punkt, ob man in CFGs diese Art von Produktionen erlauben sollte, ist man sich scheinbar nicht zu 100% einig (obacht Springer :) ).

Problemstellung

(Kontextfreie) Grammatiken sind ein essentieller Bestandteil der Lehre von theoretischer Informatik. Um Studierenden dieses Thema so intuitiv wie nur möglich nahezubringen, sollte ein Werkzeug existieren, mit dem Studierende experimentieren können ohne das eine konkrete Aufgabe vorgegeben ist. Quasi eine Sandbox für Grammatiken!

Umsetzung

Das Tool wurde mit Java und JavaFX umgesetzt. Der Code ist auf GitHub unter der MIT Lizenz veröffentlicht. Ich habe großes Interesse daran, das Tool weiterzuentwickeln, da ich tatsächlich denke, dass es eine sinnvolle Ergänzung zum Lehrbetrieb sein könnte.

Ergebnis

Ja und das Ergebnis sieht man im Bild am Anfang dieses Posts. Wichtig für das Tool war die freie Gestaltung der Grammatiken und die Nachvollziehbarkeit mittels diverser Visualisierungen wie der Syntaxbaum, die Ableitungsfolge und die Wechselwirkung derer. Außerdem ist die Einfärbung der Wörter ein wichtiger Bestandteil, wodurch signalisiert wird ob ein Wort in der Sprache liegt oder nicht. Durch ein Klick in den Syntaxbaum wird die entsprechend angewandte Produktionsregel und die Stelle im Ableitungsbaum hervorgehoben. Hervorhebung im Tool
Während meiner Bachelorarbeit habe ich bereits Nutzerstudien mit der Frage, ob das Werkzeug das Verständnis für kontextfreie Grammatiken fördern könne, durchgeführt. In Zukunft sollen weitere Befragungen stattfinden. Es bleibt also spannend!