Chapter 1. Introduction to Kermeta

This chapter aims to help you to have a quick overview of most of the features of Kermeta. Then, it gives the pointers to the detailed sections in the reference chapter. It also gives some small examples that should help you to understand the basis of the concepts without having to jump to the corresponding detailed section.

1.1. Presentation

[Warning]Text not verified for kermeta 2

Kermeta is a metamodeling language which allows describing both the structure and the behavior of models. It has been designed to be compliant with the OMG metamodeling language EMOF (part of the MOF 2.0 specification) and Ecore (from Eclipse). It provides an action language for specifying the behavior of models.

Kermeta is intended to be used as the core language of a model oriented platform. It has been designed to be a common basis to implement Metadata languages, action languages, constraint languages or transformation language.

Kermeta positioning

Figure 1.1. Kermeta positioning


In a nutshell, Kermeta is :

  • MOF compliant (EMOF compliant to be precise)

  • Model oriented

  • Imperative

  • Object-Oriented

  • Aspect-Oriented

  • Statically Typed (100% typesafe)

In addition to these characteristics, it includes some typically model-oriented concepts like associations, multiplicities or object containment management.

This chapter presents the main features of the Kermeta language. Section 2 presents the general syntax of the language, sections 3 & 4 give details about the object-oriented and model-oriented features of the language and finally section 4 provides information about some extra concepts in Kermeta (including aspect orientation).

With its workbench, it's goal is to provide a support for all Language Driven Engineering activities. It will be typically used to build tools useful to build software. This includes (but is not restricted to): model checkers, simulators, model transformations (any kind of transformations including model weavers or compilers).