ALFI: Action Language for Foundational UML as an Intermediate Language for Model Transformations in JetBrains MPS
Domain-specific Languages (DSLs) assist in building complex software systems across various domains by creating models that are interpreted or transformed into executable code. Language developers face a tedious and error-prone process when transforming such models directly into multiple target General-Purpose Programming Languages (GPLs) like Java and C++, requiring them to write DSL-specific transformations redundantly multiple times. Using intermediate languages can reduce this redundancy by enabling language developers to write DSL-specific transformation logic only once. Despite its potential, no approach currently uses the Action Language for Foundational UML (ALF) as an intermediate language to transform tailored DSLs within an industry-strength workbench for designing projectional languages. To address this, we develop ALFI as a prototypical implementation of ALF in Jet-Brains MPS and implement MPS transformations from ALFI to Java and C++. We develop two exemplary DSLs to demonstrate the transformation chains that transform tailored DSLs into ALFI and then into executable Java and C++ code. The prototypical ALFI implementation successfully demonstrates the use of ALF as an intermediate language, enabling the model transformation of DSLs into multiple target GPLs.
Authors
- Steffen Becker (ORCID: https://orcid.org/0000-0002-4532-1460)
- Mario Fuksa (ORCID: https://orcid.org/0000-0002-8210-094X)
- Timur Sağlam (ORCID: https://orcid.org/0000-0001-5983-4032)
- Tim Neumann
Institutions
- University of Stuttgart (DE)
- Karlsruhe Institute of Technology (DE)
Publication Details
- Published
- 2024-09-22
- DOI
- https://doi.org/10.1145/3652620.3688350
- Citations
- 1
- Primary Topic
- Model-Driven Software Engineering Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.49