# What is Epsilon?

Epsilon is a family of consistent and interoperable task-specific programming languages which you can use to interact with your EMF models to perform common Model Driven Engineering tasks such as:

- Imperative model navigation and modification (EOL)
- Model validation (EVL)
- In-place model transformation (EWL)
- Model-to-model transformation (ETL)
- Model-to-text transformation (EGL)
- Model comparison (ECL)
- Model merging (EML)
- Model migration (Flock)

The most important feature of Epsilon is that all the languages above are built atop the imperative model navigation and modification language of the platform (EOL), and therefore, once you get the grips with EOL, moving on to languages for other tasks is really easy.

Another noteworthy features of Epsilon is that its languages can be used to manage multiple models of different technologies (e.g. EMF, MDR, XML) simultaneously. Also, Epsilon provides a bridge to Java so that Java-object methods can be called from Epsilon programs.

# What's in this guide?

Mainly hyperlinks. There is already a fair number of places on the web that explain different bits of Epsilon, so instead of duplicating them here we thought it'd be a better idea to provide hyperlinks to them instead. The documentation section of the Epsilon website is the best place to look for examples, turorials and screencasts.