Assemble and integrate your EMF-based languages with Melange!
Over the years, the Eclipse Modeling Framework (EMF) has become the reference modeling solution within the Eclipse ecosystem and beyond. Many projects (e.g. Xtext and Sirius) rely on EMF and benefit from the associated APIs and tools to define domain-specific languages (DSLs). Recent initiatives such as the Eclipse Industry Working Group PolarSys also illustrate the interest of the industry in model-based and DSL-based solutions for various application domains.
While EMF has proved its capacity to support the development of isolated DSLs, the proliferation of independently-developed DSLs in many domains raises new challenges. In this context, it is likely that previous efforts spent on the development of other languages could be leveraged for the definition of your own dedicated DSL, especially when their overlap. Rather than building your new language from scratch, wouldn’t you want to simply import and put together pre-existing language parts “a la carte”? Wouldn’t it be nice if your new DSL could also benefit from the editors and tools initially defined on those imported languages? Of course, imported languages may not fit exactly your requirements. Thus, further extension, restriction, and specialization mechanisms are needed. This is where Melange comes into play!
Melange is an open-source (EPL), EMF-based language workbench. In Melange, DSLs can be imported, assembled and customized using dedicated constructs. New DSLs created using Melange remains fully compatible with the EMF and compliant with the entire associated ecosystem, e.g. Xtext and Sirius for model editors. Melange also includes an action language based on Xtend that can be used to modularly define any kind of reusable model transformations, including model interpreters and compilers. While Melange is still a proof of concept, it is currently experimented in several industrial environments (e.g., Capella) as a support for language engineering and interoperability.
This talk will showcase the overall approach and features of Melange through several scenarios typically faced by language designers and discuss its integration with the broader EMF ecosystem. The demonstration will show how to assemble various popular languages (e.g. activity diagrams and the Lua scripting language) to produce an executable DSL for the design and simulation of Internet of Things systems.