Generierung von Syntax-Analysatoren für Java-Anwendungen

Studienarbeit / Bachelorarbeit

Anwendungsprogramme sind häufig auf die Verarbeitung von Dokumenten in anwendungsspezifischen Sprachen angewiesen. Das Spektrum reicht von einfachen Konfigurationssprachen über die die Analyse der Struktur von Nutzereingaben bis hin zum "language-oriented programming", wo in Spezialsprachen formulierte Dokumente eine zentrale Rolle spielen.

Eli ist ein Werkzeugsystem zum Entwurf und zur Implementierung von anwendungsspezifischen Sprachen, das in unserer Arbeitsgruppe mitentwickelt wurde. Eli enthält zahlreiche generierende Werkzeuge und Bibliotheken, die die Lösung von Übersetzungsaufgaben systematisieren und den Herstellungsprozeß von Sprachimplementierungen weitestgehend automatisieren. Die Produkte von Eli, wie z. B. Scanner, Parser und Syntax-gesteuerte Baumkonstruktion sind in der Sprache C implementiert. Somit können sie nicht direkt in Projekten eingesetzt werden, die auf Java basieren.

Ziel dieser Arbeit ist es, Eli-generierte Syntax-Analysatoren für Java-Projekte verfügbar zu machen. Dazu muss eine "Java Native Interface (JNI)"-Anbindung entworfen werden, über die die Kommunikation zwischen "beiden Welten" abgewickelt werden kann. Mindestanforderungen für die Schnittstelle sind:

  • Aufruf des Parser für ein gegebenes Dokument
  • Behandlung von Fehlermeldungen
  • Zugang zu den Grundsymbolen und ihrer externen Repräsentation
  • Konstruktion und Verfügbarmachung des abstrakten Strukturbaums
Für die Baum-Konstruktion bieten sich die beiden Möglichkeiten, die Baumstruktur auf der C-Seite anzusiedeln, Zugriff und Traversierung geschieht dann über JNI, oder den Strukturbaum auf Java-Seite zu realisieren, dann müssen die Baumaufbau-Methoden aus dem C-Parser über JNI aufgerufen werden. Diese Arbeit soll beide Ansätze realisieren und vergleichend analysieren.

Bearbeiter: Manuel Töws
Betreuer: U. Kastens

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013