Scanner Generator aus einer Grammatik

- Bachelorarbeit -


Beschreibung:

Datenbanken bekommen als Eingabe String-basierte Anfragen.
Der erste Schritt bei der Anfragenverarbeitung besteht darin, diesen String in ein Abfolge von Tokens umzuformen.

Bisher ist der Tokenizer zum Parsen der Eingabe händisch programmiert.
Dies hat den Nachteil, dass es schwierig ist Änderungen oder Erweiterungen der zugrundeliegenden Grammatik vorzunehmen.
Des weiteren ist es komplex und fehleranfällig diesen umfangreichen Copy-Paste basierten Code zu optimieren.

Die Idee besteht darin, aus einer Text-basierten Grammatik einen Tokenizer zu generieren (als endlicher Automat), welcher gültige Eingaben der Grammatik akzeptiert,
und ungültige Eingaben als solche erkennt und ablehnt.

In der Bachelorarbeit soll daher ein Code-Generator entwickelt werden, welcher eine textuelle Grammatik in
einen ausführbaren Tokenizer übersetzt.
Mittels Kotlin soll sowohl der Parser-Generator als auch der entstandene Tokenizer Multi-Plattform-Unterstützung bieten.
Anschließend soll die Text-zu-Automat Konvertierung sowie der generierte Tokenizer selbst durch Messreihen evaluiert werden.

Anforderungen/Kenntnisse:
Kotlin, Datenbank-Grundkenntnisse

Beispiele für Scanner-Generatoren (in Java) :
 - https://www.jflex.de/
 - https://javacc.github.io/javacc/

Betreuung:

Benjamin Warnke
Institut für Informationssysteme
Ratzeburger Allee 160 ( Gebäude 64 - 2. OG)
23562 Lübeck
Telefon: 0451 / 3101 5718

Prof. Dr. rer.nat. habil. Sven Groppe
Institut für Informationssysteme
Ratzeburger Allee 160 ( Gebäude 64 - 2. OG)
23562 Lübeck
Telefon: 0451 / 3101 5706