![](https://csdnimg.cn/release/download_crawler_static/12503812/bg4.jpg)
language structure (or a modeling language is defined by a metamodel). Third, a metamodel is a model of a set of models or
is a model of models. Finally, a model conforms with a metamodel (via the ConformsWith relation), meaning that the model
should satisfy the rules defined at the level of its metamodel as extensively discussed by Kühne and others [37,73,57].
2.2.2. Meta-metamodel, metamodel and model
A well-known and recurring problem of metamodeling is how to set the initial metamodel. If a metamodel is a model of
a modeling language, there must be a meta-metamodel describing its modeling language, and so on, in higher levels and
more abstract meta-metamodels. The common solution to overcome this problem is to use a language that, at a particular
level of this hierarchy, describes itself in its own language. There are numerous examples of this solution. In the field of
natural languages, the English Language describes itself in English at the level of grammar definition, dictionaries, etc. In the
field of programming languages, Lisp is a well-known example of a language that describes itself, providing in particular a
Lisp compiler written in Lisp [44].
In the field of modeling languages the solution proposed by OMG, based on a four-layer architecture and directly
supported through the Meta Object Facility (MOF) [55] is a popular example. At the top of that hierarchy there is the meta-
metamodeling layer (designated as M3) that is mainly responsible for providing a language to specify metamodels. MOF is a
unique meta-metamodel layer because it is instantiated from its own model, i.e., the MOF is defined in MOF (technically
using a restricted set of meta-classes designated by InfrastructureLibrary). In the layer below (designated as M2),
metamodels are defined by instantiation of the meta-metamodel (i.e., each element of the metamodel is an instance of
an element defined in the meta-metamodel). UML [53] or Common Warehouse Metamodel (CWM) [52] are some examples
of those metamodels, i.e. examples of MOF instances. In the layer below M2 (designated as M1), the models are defined
according to the interest and needs of its users: typically for different application domains and different levels of abstraction,
e.g. at the level of business definition, technical requirements, or software design. Note that a user model can contain either
model elements (i.e., classes and concrete types e.g., Video) or instances of these types (e.g., the instance:Video). Finally, the
lowest level of the hierarchy (the M0 layer) contains real instances of elements defined in the model that actually exist in
the context of a computational environment or even in the real world (e.g., a specific Video in your own laptop).
3. Modeling language
As mentioned in the previous section, a modeling language is defined by a metamodel and is a set of all possible models
that are conformant with its respective metamodel. However, to provide a complete definition we should consider other
aspects or facets (as suggested in Fig. 4), and consequently we define “modeling language as a set of all possible models that
are conformant with the modeling language's abstract syntax, represented by one or more concrete syntaxes and that satisfy a
given semantics. Additionally, the pragmatics (of a modeling language) helps and guides how to use it in the most appropriate
way”. Metamodel and notation are common synonyms to, respectively, abstract syntax and concrete syntax [25].
3.1. Abstract syntax
The definition of a modeling language usually starts with the capture and identification of the concepts, abstractions and
relations underlying the application domain, which represents domain analysis phase of DS(M)L development [46,32]. This
Model
System
Modeling
Language
Meta model
1
Conforms With >
*
1
Defines >
1
*
Element Of >
1
+model
*
Defines >
+sus
1
Fig. 3. The metamodel definition: relationships between metamodel and model.
A. Rodrigues da Silva / Computer Languages, Systems & Structures 43 (2015) 139–155142