Kompositionale Entwicklung domänenspezifischer Sprachen
Autoren
Mehr zum Buch
Die Nutzung domänenspezifischer Sprachen (engl. Domain-Specific Languages - DSLs) bei der Erstellung komplexer Software erlaubt eine effiziente Entwicklung, einen höheren Grad der Wiederverwendung und verringert sich wiederholende und daher fehlerträchtige Entwicklungsarbeit. Zusätzlich erlauben es DSLs, Domänenexperten direkt in den Entwicklungsprozess einzubeziehen. Demgegenüber steht die oft aufwendige Entwicklung einer Sprache mit all ihren Teilen wie konkrete und abstrakte Syntax, Kontextbedingungen und -überprüfungen sowie unterstützende sprachspezifische Werkzeuge. Zusätzlich ist es aufgrund des speziellen Verwendungszwecks von DSLs üblich, mehrere Sprachen und sogar Sourcecode kooperativ einzusetzen, beginnend mit sequenziellen Werkzeugketten bis hin zur Einbettung (von Teilen) einer Sprache in eine andere. Die Auswahl der eingesetzten Sprachen, der Kombinationsform und der domänenspezifischen Adaption variiert jedoch je nach Projektkontext, Zielsetzung und beteiligten Nutzern. Um diesen Herausforderungen zu begegnen, wird in der vorliegenden Arbeit ein Ansatz zur kompositionalen Entwicklung textueller domänenspezifischer Sprachen vorgestellt. Hierbei werden zunächst einzelne Sprachen unabhängig voneinander erstellt, um sie in einem weiteren Schritt mit geringem Aufwand auf verschiedenste Weise miteinander zu kombinieren. Als werkzeugtechnische Unterstützung werden dabei Kompositionalitätsmechanismen des MontiCore- Frameworks verwendet und um zusätzliche Konzepte erweitert. Die wichtigsten Ergebnisse dieser Arbeit lassen sich wie folgt zusammenfassen: - Eine Übertragung der Mechanismen komponentenbasierter Softwareentwicklung auf die Entwicklung von Sprachen und eine Untersuchung, welche Techniken und Architekturen sich eignen, Sprachen und Software kompositional zu entwickeln. - Eine Kategorisierung von Sprachkombinationen in Szenarien sowie die Erstellung bzw. Verbesserung der Mechanismen zur kompositionalen Sprachentwicklung in MontiCore. - Eine Untersuchung, wie die Szenarien anhand der Kompositionalitätsmechanismen bezüglich der konkreten und abstrakten Syntax realisiert werden können. - Die Entwicklung eines Frameworks zur Erstellung kompositionaler Symboltabellen und Kontextbedingungen mit anschließender Diskussion der Umsetzung der Szenarien bezüglich dieser Sprachbestandteile. - Die Erweiterung des unterliegenden Grammatikformates zur Spezifikation sprachspezifischer Werkzeuge sowie die Generierung dieser Werkzeuge in Form von auslieferbaren Eclipse-Plugins, wobei auch diese Werkzeuge die Anforderungen kompositionaler Sprachentwicklung erfüllen. Insgesamt entsteht ein durchgängiger und kohärenter Ansatz zur kompositionalen Sprachentwicklung auf den Ebenen der konkreten Syntax, der abstrakten Syntax, der Symboltabellen, der Kontextbedingungen und der sprachspezifischen Werkzeuge.