EOL is an imperative programming language for creating, querying and modifying EMF models.
You can think of it as a mixture of Javascript and OCL, combining the best of both worlds.
As such, it provides all the usual imperative features found in Javascript
(e.g. statement sequencing, variables, for and while loops, if branches etc.)
and all the nice features of OCL such as those handy collection querying
functions (e.g. Sequence{1..5}.select(x|x>3)).
Features
Support for simultaneously accessing/modifying many models of (potentially) different metamodels
All the usual programming constructs (while and for loops, statement sequencing, variables etc.)
Support for those convenient first-order logic OCL operations (select, reject, collect etc.)