Section: New Software and Platforms


Keywords: Language workbench, Domain-Specific (Modeling) Language, Model-Driven Engineering, Model execution and debugging, Execution trace management

Scientific Description

Melange is a follow-up of the executable metamodeling language Kermeta, which provides a tool-supported dedicated meta-language to safely assemble language modules, customize them and produce new DSMLs. Melange provides specific constructs to assemble together various abstract syntax and operational semantics artifacts into a DSML. DSMLs can then be used as first class entities to be reused, extended, restricted or adapted into other DSMLs. Melange relies on a particular model type system that statically ensures the structural correctness of the produced DSMLs, and specific subtyping relationships between DSMLs to reason about their substitutability. Newly produced DSMLs are correct by construction, ready for production (i.e., the result can be deployed and used as-is), and reusable in a new assembly.

Melange is a language workbench that support a modular and reusable approach for domain-specific language design and implementation.

Functional Description

Melange is a language workbench which helps language engineers to mashup their various language concerns as language design choices, to manage their variability, and support their reuse. It provides a modular and reusable approach for customizing, assembling and integrating DSMLs specifications and implementations. The language workbench embeds a model-oriented type system that provides model polymorphism and language substitutability, i.e. the possibility to manipulate a model through different interfaces and to define generic transformations that can be invoked on models written using different DSMLs. Melange also provides a dedicated meta-language where models are first-class citizens and languages are used to instantiate and manipulate them. By analogy with the class-based, object-oriented paradigm, Melange can be classified as a language-based, model-oriented programming language. Melange is tightly integrated with the Eclipse Modeling Framework ecosystem and relies on the meta-language Ecore for the definition of the abstract syntax of DSMLs. Executable meta-modeling is supported by weaving operational semantics defined with Kermeta (defined on top of Xtend). Melange is bundled as a set of Eclipse plug-ins.

  • Participants: Thomas Degueule, Erwan Bousse, Fabien Coulon, Dorian Leroy, Didier Vojtisek, Olivier Barais, Arnaud Blouin, Benoit Combemale, Jean-Marc Jézéquel

  • Partners: Université de Rennes 1

  • Contact: Benoît Combemale

  • URL: http://melange-lang.org