Melange: A Meta-language for Modular and Reusable Development of DSLs

Thomas Degueule 1 Benoit Combemale 1 Arnaud Blouin 1 Olivier Barais 1 Jean-Marc Jézéquel 1, 2
1 DiverSe - Diversity-centric Software Engineering
Inria Rennes – Bretagne Atlantique , IRISA-D4 - LANGAGE ET GÉNIE LOGICIEL
Abstract : Domain-Specific Languages (DSLs) are now developed for a wide variety of domains to address specific concerns in the development of complex systems. When engineering new DSLs, it is likely that previous efforts spent on the development of other languages could be leveraged, especially when their domains overlap. However, legacy DSLs may not fit exactly the end user requirements and thus require further extension, restriction, or specialization. While current language workbenches provide import mechanisms, they usually lack an explicit support for such customizations of imported artifacts. In this paper, we propose an approach for building DSLs by safely assembling and customizing legacy DSLs artifacts. This approach is based on typing relations that provide a reasoning layer for manipulating DSLs while ensuring type safety. On top of this reasoning layer, we provide an algebra of operators for extending, restricting, and assembling separate DSL artifacts. We implemented the typing relations and algebra into the Melange metalanguage. We illustrate Melange through the modular definition of an executable modeling language for the Internet Of Things domain. We show how it eases the definition of new DSLs by maximizing the reuse of legacy artifacts without introducing issues in terms of performance, technical ecosystem compatibility, or generated code volume.
Document type :
Conference papers
Complete list of metadatas

Cited literature [44 references]  Display  Hide  Download
Contributor : Thomas Degueule <>
Submitted on : Friday, September 11, 2015 - 12:32:09 AM
Last modification on : Friday, March 1, 2019 - 4:30:07 PM
Long-term archiving on : Tuesday, December 29, 2015 - 12:15:28 AM


Files produced by the author(s)


  • HAL Id : hal-01197038, version 1


Thomas Degueule, Benoit Combemale, Arnaud Blouin, Olivier Barais, Jean-Marc Jézéquel. Melange: A Meta-language for Modular and Reusable Development of DSLs. 8th International Conference on Software Language Engineering (SLE), Oct 2015, Pittsburgh, United States. ⟨hal-01197038⟩



Record views


Files downloads