Metamorphic Domain-Specific Languages: A Journey Into the Shapes of a Language
Mathieu Acher, Benoit Combemale, Philippe Collet

TL;DR
This paper explores metamorphic domain-specific languages (DSLs) that can adapt their shape to user needs, demonstrating a four-year journey in developing and maintaining such flexible languages in feature modeling.
Contribution
It introduces the concept of metamorphic DSLs that can change form, showing practical development of external and internal DSLs with adaptable shapes.
Findings
No single best solution; multiple language shapes are valuable.
Maintaining both external and internal DSLs is beneficial.
Metamorphic DSLs can adapt to different tasks and environments.
Abstract
External or internal domain-specific languages (DSLs) or (fluent) APIs? Whoever you are -- a developer or a user of a DSL -- you usually have to choose your side; you should not! What about metamorphic DSLs that change their shape according to your needs? We report on our 4-years journey of providing the "right" support (in the domain of feature modeling), leading us to develop an external DSL, different shapes of an internal API, and maintain all these languages. A key insight is that there is no one-size-fits-all solution or no clear superiority of a solution compared to another. On the contrary, we found that it does make sense to continue the maintenance of an external and internal DSL. The vision that we foresee for the future of software languages is their ability to be self-adaptable to the most appropriate shape (including the corresponding integrated development environment)…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsModel-Driven Software Engineering Techniques · Advanced Software Engineering Methodologies · Software Engineering Research
