The main characteristics of the Kermeta language are : •
imperative: traditional structures of control •
object-oriented: 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 (operational or translational). •
design by contract: 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: the complete model of the program is available during execution. ==Syntax==