Kermeta - Breathe life into your metamodels
|Kermeta is developped by the Triskell team, all external contributors are welcome.|
NEW version ! Kermeta 3 (K3)
Kermeta continues to evolve to better match your requirements !
Kermeta 1 was interpreted. Kermeta 2 was compiled to Scala. Kermeta 3 is now an extension to xTend in order to simplify Java integration.
The new version and its documentation is available on github http://diverse-project.github.io/k3
This site is kept for archive only.
Even if the technology changes, many of the principles, recipes, and good practices of Kermeta 1 & 2 remains valid with K3.
Kermeta workbench is a powerful metaprogramming environment based on an
object-oriented DSL (Domain Specific Language) optimized for metamodel
Kermeta features a comprehensive environment for MetaModel Engineering activities running in Eclipse, including:
- specification of abstract syntax, static semantics (OCL) and dynamic semantics with connection to the concrete syntax
- model and meta-model prototyping and simulation
- model transformation
- aspect weaving.
Kermeta is built as an extension to EMOF (part of the MOF 2.0 specification) (I.e any EMOF compliant model is a valid Kermeta program and conversely)
It is available under an open source license EPL (Eclipse Public License).
Kermeta is fully integrated with Eclipse and includes features such as a compiler, a prototyper, an editor and various import/export transformations. (Details of the features of the workbench)
Key features of the language :
- Model oriented : Model elements are the key concepts of the language, manipulate them as easily as Objects in your favorite Object Oriented language.
- Aspect oriented : It allows to weave elements coming from various sources (ecore, kermeta, OCL, ...) in order to build various tools on top of existing (legacy) metamodels. Place your operations and features directly in the metaclasses for clean and innovative designs.
- Strongly typed : It supports generics, lambda expression (build your own "foreach" on any element you wish) and a convenient Model type. Common errors are reported early in the development process.
- Design by contract : this helps to build reliable tools.
- Object Oriented core : If the above features aren't enough for a good design, then simply reuse the popular know how and design pattern available with Object Oriented Programming. This ensures a good scalability
Kermeta expects correct EMF models. It is easy to
forget a step in the build process; please follow carefully the
guidelines given in the documentation. This note holds for both reflexive, Omondo and Topcased editors.