Melange: A Meta-language for Modular and Reusable Development of DSLs - Archive ouverte HAL Access content directly
Conference Papers Year :

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

(1) , (1) , (1) , (1) , (1, 2)


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.
Fichier principal
Vignette du fichier
sle15-melange.pdf (462.16 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-01197038 , version 1 (11-09-2015)


  • 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⟩
657 View
1227 Download


Gmail Facebook Twitter LinkedIn More