main page

staff

teaching

theses

research

publications

books

press

jobs

download


TU-BS

FB Informatik
TU Braunschweig

Holger Krahn: Frameworkbasierte Entwicklung domänenspezifischer Sprachen

In der Informatik hat sich die UML als universelle Modellierungssprache zur Beschreibung von Softwaresystemen etabliert. Modellgetriebene Ansätze (model-driven development, MDD) ermöglichen es direkt aus dieser Beschreibung ein lauffähiges System zu erzeugen. Oftmals haben sich in verschiedenen Anwendungsgebieten, so genannten Domänen, jedoch andere Modellierungssprachen als die UML etabliert, die von Domänenexperten verwendet werden und sich im Einsatz bewährt haben. Somit ist die Akzeptanz der UML bei diesen Domänenexperten oft gering und die bewährten Notationen werden bevorzugt. Daher hat sich die Entwicklung domänenspezifischer Sprachen (domain specific languages, DSLs) bewährt, die aus der direkten Übernahme und Formalisierung der in der Domäne verwendeten Notation oder durch die Zusammenfassung der in der Anwendungsdomäne relevanten Konzepte zu einer neuen Sprache entstehen.
Im Rahmen dieses Promotionsvorhabens wurde ein Framework zur Entwicklung von textbasierten DSLs und darauf aufbauenden Codegenerierungen entwickelt. Dabei wurde eine kompakte Erweiterung der Extended-Backus-Naur-Form (EBNF) entworfen, die die abstrakte und konkrete Syntax einer Modellierungssprache definiert. Die Struktur und die Ausdrucksmächtigkeit der abstrakten Syntax übersteigen dabei die in Parsergeneratoren standardmäßig generierten Bäume. Insbesondere ist es in der Sprachdefinition nicht nur möglich, die kontextfreie Syntax zu spezifizieren, sondern es sind auch spezielle nicht-kontextfreie Eigenschaften möglich, wie sie in der Meta-Modellierung üblicherweise durch Assoziationen beschrieben werden.
Das entwickelte Grammatikformat bietet ein Modularitätsprinzip, bei dem Grammatikfragmente mit Löchern, also nicht weiter definierten Nichtterminalen, spezifiziert und in einen Parser und Klassen der abstrakten Syntax umgesetzt werden können. Diese Fragmente können dann in kompilierter Form miteinander kombiniert werden. Die beschriebenen Modularitätskonzepte erlauben den effizienten Aufbau einer Bibliothek von qualitätsgesicherten Sprachdefinitionen und -fragmenten sowie darauf aufbauenden Codegenerierungen und Analysen. Somit lässt sich durch ein Baukastenkonzept die Entwicklung von domänenspezifischen Sprachen erreichen, wobei einzelne Elemente gezielt wieder verwendet werden können. Dadurch lässt sich die Entwicklungszeit von DSLs verkürzen und die Qualität der entstehenden Sprachen insgesamt heben.