ALFI: Action Language for Foundational UML as an Intermediate Language for Model Transformations in JetBrains MPS

Mario Fuksa, Timur Sağlam, Tim Neumann, Steffen Becker · 2024

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.

Read the paper · More papers on PaperTik