Kermeta is a modeling and programming language
for
metamodel engineering.
History
The Kermeta language was initiated by Franck Fleurey in 2005 within th
Triskellteam of
IRISA (gathering researchers of the
INRIA
The National Institute for Research in Digital Science and Technology (Inria) () is a French national research institution focusing on computer science and applied mathematics.
It was created under the name French Institute for Research in Comp ...
,
CNRS,
INSA and the
University of Rennes
The University of Rennes (French: ''Université de Rennes'') is a public university, public research university located in Rennes, Upper Brittany, France. Originally founded in 1460, the university was split into two universities in 1970: Univers ...
1).
The Kermeta language borrows concepts from languages such as
MOF,
OCL and
QVT, but also from BasicMTL, a model transformation language implemented in 2004 in the Triskell team by D. Vojtisek and F. Fondement. It is also inspired by the previous experience on MTL, the first transformation language created by Triskell, and by the Xion action language for
UML.
The name Kermeta is an abbreviation for "Kernel Metamodeling" and reflects the fact that the language is conceived as a core for (meta-)modeling. The
Breton language
Breton (, , ; or in Morbihan) is a Southwestern Brittonic language of the Celtic languages, Celtic language group spoken in Brittany, part of modern-day France. It is the only Celtic language still widely in use on the European mainland, albei ...
consonance of this name is an intentional reflection of the Triskell team's location in Brittany.
Kermeta, and its execution platform under
Eclipse
An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
is currently available under its version 2.0.4
released in 2012. It is
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
, under the
Eclipse Public License
The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating t ...
.
Philosophy
Kermeta is a modeling and
aspect oriented programming
In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase Modularity (programming), modularity by allowing the separation of concerns, separation of cross-cutting concerns. It does so by adding behavior to ex ...
language. Its underlying metamodel conforms to the
EMOF standard. It is designed to write programs which are also models, to write transformations of models (programs that transform a model into another), to write constraints on these models, and to execute them. The goal of this model approach is to bring an additional level of abstraction on top of the "object" level and thus to see a given system like a set of concepts (and instances of concepts) that form an explicitly coherent whole, which one will call a model.
Kermeta thus brings:
* all the concepts of EMOF used for the specifications of a model.
* a real concept of model, more precisely of model type (Jim Steel).
* a concrete syntax that fits well to model and metamodel writing.
* two paradigms: the object, and the model.
* a bridge towards the Eclipse
ECore formalism
Characteristics
The main characteristics of the Kermeta language are :
*
imperative: traditional structures of control
*
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
: multiple inheritance, late binding
*
model-oriented: first-class concepts of associations and composition
*
aspect-oriented: integrate a simple but powerful weaver for simple meta-modeling tasks. Arbitrary complex weaving is achieved using a dedicated composer written in Kermeta. This allows programmers to extend existing metamodels. Especially in order to add behavior to them by weaving behavioral
semantics
Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
(operational or translational).
*
design by contract
Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software.
It prescribes that software designers should define formal, precise and verifiable ...
: operations support pre and post conditions, classes use invariants.
*
functional: functions and first class lambda-expressions
*statically typed: genericity for the classes and the operations, function types...
*complete
introspection
Introspection is the examination of one's own conscious thoughts and feelings. In psychology, the process of introspection relies on the observation of one's mental state, while in a spiritual context it may refer to the examination of one's s ...
: the complete model of the program is available during execution.
Syntax
The curious reader will find further information on th
Kermeta website
Example (Kermeta 1.4)
package fsm;
require kermeta
using kermeta::standard
class FSM
class State
class Transition
See also
*
Model Driven Engineering
*
Domain Specific Language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
*
Domain Specific Modelling
*
Model-Based Testing
Model-based testing is an application of model-based design for designing and optionally also executing artifacts to perform software testing or system testing. Models can be used to represent the desired behavior of a system under test (SUT), or ...
*
Metamodeling
*
OCL
*
Model Transformation Language
*
Meta-Object Facility
The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be cre ...
References
{{Reflist
External links
Kermeta official website Unified Modeling Language
Java platform software
Free UML tools
Software using the Eclipse Public License