A model transformation tool

Welcome to Eclectic

Eclectic is a transformation tool designed as a family of model transformation languages, that is, a set of transformation languages each one specifically designed to address a specific transformation concern.

In principle, the combination of these languages would permit covering many model transformation scenarios, in a more intentional way than using a general purpose transformation language, improving modularity and understandability.

In Eclectic every language is compiled to an intermediate representation, called IDC. It provides primitive instructions for model manipulation. Then, IDC is compiled to the Java Virtual Machine (JVM) bytecode format. In this way, all Eclectic languages share the same execution infrastructure. The composition mechanisms are implemented at the IDC level. There is also a runtime library, which provides datatypes (e.g., a naive implementation of immutable lists), a model manager (i.e., EMF and MetaDepth are supported), etc.

Current status

The current version of Eclectic has the following features:

Although in this moment Eclectic is in general usable, it is still evolving, and the languages and the implementation are likely to change.


The are some dependencies with other plug-ins, that should be installed before installing.

Download the packaged update site from one of the links at the left sidebar. Install with:

Help -> Install New Software -> Add... -> Archive ...
It may be needed to uncheck "Group items by category" if nothing appears in the plug-in list.

Basic usage

Create a new Java project, right-click on the project and select Add Eclectic Nature. Then, go to build path configuration, select Add Library and Eclectic. Now, you should be able to write .eclectic files and get them compiled automatically.

You can download the example projects to see how to configure and launch transformations.

Authors and Contributors

Eclectic has been created by Jesús Sánchez Cuadrado. If you have any trouble installing or using it, you can contact jesus dot sanchez dot cuadrado at uam dot es