SCOLAR

Systematic Component-Oriented Language Reuse

Projektförderung

Hintergrund

Software wird immer häufiger von Domänenexperten entwickelt. Diese brauchen domänen-spezifische Sprachen (DSLs) um die konzeptuelle Lücke zwischen dem Problemraum ihrer Domänenerfahrung und dem technischen Lösungsraum des Software Engineering zu schließen. Die Entwicklung neuer DSLs ist komplex, auf Grund von fehlenden Konzepten, für die Bestandteil-vollständige Wiederverwendung und Anpassung von DSLs, die von dem spezifischen technischen Raum abstrahiert. Aktuelle Forschung im Bereich Software Engineering konzentriert sich auf unvollständige Lösungen (z.B. nur Syntaxwiederverwendung), ist an einen speziellen technischen Raum gebunden, oder zu abstrakt um wiederverwendbare DSLs zu entwickeln. Wir werden eine neuartige Methode zur systematischen Wiederverwendung von textuellen, externen DSLs mit übersetzbarem Verhalten (txtDSLs) konzipieren, das ermöglicht txtDSLs in Sprachfamilien darzustellen. Als Basis dieser Sprachfamilien dienen komponierbare Sprachkomponenten mit expliziten Interfaces, die ihre Möglichkeiten zu Variation und Anpassung beschreiben. Zentral bei dieser Methode ist ein erweiterbares Modell für txtDSL Familien, das verknüpft wird mit Sprachkomponenten mit einem expliziten Interface, und einem Kompositionsoperator, der bestimmt wie die Sprachkomponenten komponiert werden. Wir erreichen damit eine Wiederverwendung von txtDSLs unabhängig vom technologischen Raum.

Ziele

Hauptziel ist es, eine durchführbare, präzise, und systematisches Verständnis von der Entwicklung txtDSLs mit wiederverwendbaren Sprachkomponenten zu finden. Dafür werden wir eine neuartige Methodik für die Wiederverwendung von txtDSLs konzipieren, das alle unterschiedlichen Arten von Definitionen der Bestandteile von txtDSLs, dazu zählen konkrete Syntax, abstrakte Syntax, wohlgeformtheitsregeln, und Transformationen, miteinbezieht, und auch die verschiedenen Arten von Variations- und Anpassungsmechanismen, auf Basis unserer Vorarbeiten, berücksichtigt. Zur Erreichung unseres Zieles, wollen wir eine konzeptuelle Grundlage für txtDSL Wiederverwendung etablieren, die DSL Ingenieure in der systematischen Entwicklung wiederverwendbarer Sprachen (wie in ABB.1 illustriert) unterstützt. Dies erleichtert das genaue zuschneiden von DSLs, was die multi-disziplinäre Entwicklung komplexer Systeme durch verschiedene Domänenexperten ermöglicht. Um dieses Ziel zu erreichen, werden wir eine Methodik zur DSL Wiederverwendung konzipieren, die Sprachfamilien, Sprachkomponenten, Bestandteile, Interfaces, und deren Beziehung zueinander beinhaltet. Diese werden in einem zweistufigen Prozess verwendet, der die Auflösung von Variabilität einer Sprachfamilie, mit dem Ergebnis einer neuen Sprachkomponente und der anschließenden Ableitung einer vollständigen txtDSL, einschließt. Auf Basis dieser Methodik zur txtDSL Ableitung werden wir geeignete Wohlgeformtheitsregeln und einen Kompositionsoperator für Sprachkomponenten und deren technologieraumspezifischen Sprachartefakten definieren. Diesen Kompositionsoperator werden wir nutzen, um Sprachkomponenten der ausgewählten Features der Sprachfamilie zu komponieren. Außerdem werden wir Gemeinsamkeiten in Wiederverwendbarkeit und der Komposition bekannter txtDSLs identifizieren und diese in unserer Methodik zur txtDSL Wiederverwendung nutzen. Wir betrachten unser Ziel als erreicht, sobald (a) unsere Methode es ermöglicht Wiederverwendung von txtDSLs durch Variabilität und Anpassung unabhängig vom technologischen Raum zu beschreiben und (b) deren Wiederverwendungskonzepte auch auf komplexe Sprachen anwendbar sind.

ABB.1: Die erwartete Verwendung der Ergebnisse von SCOLAR ist die Unterstützung der Entwicklung von Sprachfamilien mittels unabhängig davon entwickelter Sprachkomponenten. Durch die Nutzung dieser und durch die Auswahl von Sprachfeatures, werden neue Sprachkomponenten synthetisiert. Anschließend können, durch die Anpassung dieser Komponenten über ihr Interface, vollständige DSLs abgeleitet werden.

Vorgehen

Zur Überbrückung der konzeptuellen Lücke zwischen unserer Abstraktion und möglicher Implementierung unserer Methodik für systematische txtDSL Wiederverwendung, muss unsere Methodik in Software konkretisiert werden. Diese unterstützt Sprachingenieure darin bessere wiederverwendbare Sprachen zu bauen. Dafür werden wir einen Modellierungsdemonstrator für txtDSL Familien, Sprachkomponenten und ihre Interfaces entwickeln. Dieser Demonstrator kann anschließend auf unterschiedliche spezifische technologische Räume übertragen werden und erweitert werden, um Eigenschaften und Operationen, spezifisch zu verschiedenen technologischen Räumen, konform zu unserer txtDSL Wiederverwendungsmethodik zu entsprechen (vergleiche ABB.2). Zu diesem Zweck wird er MontiCore DSLs beinhalten, die Elemente des konzeptuellen Modells von SCOLAR repräsentieren (z.B. Sprachfamilien, Sprachkomponenten, ihre Interfaces, …), Wohlgeformtheitsregeln um deren Validität zu prüfen, und den generellen Ablauf zur Auflösung der Variabilität und Anpassung von DSLs. Wir betrachten unser Ziel als erreicht, wenn die Modellierungsinfrastruktur die Anwendung unserer Methodik auf die technologischen Räume von MontiCore, Neverlang, und Xtext unterstützt.

ABB.2: Der erwartete Zuschneidungsprozess der Konzepte von SCOLAR an verschiedene Technologieräume: Die SCOLAR Methodik beschreibt txtDSL Wiederverwendung mittels Variabilität und Anpassung von Sprachkomponenten. Der Modellierungsdemonstrator realisiert die Komposition. Dafür überprüft er die Validität und Integrität der Sprachkomponenten und der Sprachfamilie auf Basis der SCOLAR Konzepte und deren Wohlgeformtheitsregeln. Technologieraumexperten können spezielle Analysen und Synthesen zur Komposition der DSL Bestandteile, konform zum Kompositionsoperator unserer Methodik, integrieren.

Diese Forschung wurde in Teilen von der Deutschen Forschungsgemeinschaft (DFG) unter der Bewilligungsnummer 441207927 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt bei den Autoren.

Publikationen

  1. Pfeiffer, J., & Wortmann, A. (2023). A Low-Code Platform for Systematic Component-Oriented Language Composition. Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering, 208–213. https://doi.org/10.1145/3623476.3623516
  2. Butting, A., Pfeiffer, J., Rumpe, B., & Wortmann, A. (2020). A Compositional Framework for Systematic Modeling Language Reuse. Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, 35–-46. http://www.se-rwth.de/publications/A-Compositional-Framework-for-Systematic-Modeling-Language-Reuse.pdf
  3. Butting, A., Eikermann, R., Kautz, O., Rumpe, B., & Wortmann, A. (2019). Systematic Composition of Independent Language Features. Journal of Systems and Software, 152, 50--69. https://doi.org/10.1016/j.jss.2019.02.026
  4. Butting, A., Eikermann, R., Kautz, O., Rumpe, B., & Wortmann, A. (2018, September). Modeling Language Variability with Reusable Language Components. International Conference on Systems and Software Product Line (SPLC’18). http://www.se-rwth.de/publications/Modeling-Language-Variability-with-Reusable-Language-Components.pdf

Ihr Ansprechpartner

Dieses Bild zeigt Jérôme Pfeiffer

Jérôme Pfeiffer

M.Sc.

Wissenschaftlicher Mitarbeiter "Software- und Engineeringmethoden"

Zum Seitenanfang