Metamodeling is playing an increasingly important role in object-oriented software engineering. However, most approaches use metamodels in a very pragmatic way and important conceptual questions are left open.
In this paper, an object-oriented metamodeling methodology based on a formal metalanguage is introduced. The methodology allows for the description of all relevant properties of a metamodel, i. e. abstract syntax, static and dynamic semantics. Different kinds of instantiation relations are identified and a dichotomy for the classification of metaentities is developed. The reection of the instantiation relations by the metalanguage is shown.