The Melange Language Workbench
Failed to load latest commit information.
examples bump version of melange to 0.2.2 to reflect the dependency to xtend 2.14 Sep 5, 2018
plugins fix IllegalArgumentException: Qualified name cannot be empty Sep 18, 2018
releng bump version of melange to 0.2.2 to reflect the dependency to xtend 2.14 Sep 5, 2018
resources We got a logo. Yay! Nov 9, 2016
tests fix String conversion problem Sep 6, 2018
.gitignore gitignore ._trace Apr 12, 2016
LICENSE EPL LICENSE Jan 14, 2015 Update Sep 22, 2016 Move TODOs to Apr 1, 2015


Melange is a language workbench that provides a modular approach for assembling, integrating, and customizing multiple domain-specific language (DSL) specifications and implementations. It helps to manage variability within language specifications (syntactic and semantic variation points), and reuse pieces of syntax and semantics from one DSL to the other.

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 DSLs. 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 language.

Melange is tightly integrated with the Eclipse Modeling Framework ecosystem and relies on the Ecore meta-language for the definition of the abstract syntax of DSLs. Operational semantics is defined using the K3 meta-language in the form of aspects that are statically woven on the language’s syntax. Designers can thus easily design an interpreter for their DSL in a non-intrusive way. Melange is bundled as a set of Eclipse plug-ins. Please refer to the official website for more information.

Main Features

  • Specification of DSL syntax and operational semantics
  • Full compatibility with other tools of the EMF ecosystem (e.g. Xtext for defining a DSL’s textual syntax, or Sirius for a graphical syntax)
  • Import of existing Ecore metamodels into DSL definitions
  • Composition, extension, restriction, and customization of DSLs
  • Reuse of existing tools and transformations from one DSL to the other
  • Definition of generic tools and services that can be applied to different DSLs
  • Creation and management of language families and variation points

Build Status

Build Status