Deriving a Component Model from a Language Specification : An Example Using Natural Semantics ∗

Development of a component model for a given language is tedious, time-consuming, and error-prone. Moreover, many tasks of this process have to be repeated when modeling sets of related languages. In this paper, we propose to use the meta-modeling approach and for a given language to derive an invasive component model as its derived meta-model. The derivation of a component model then becomes a horizontal extension of the corresponding language meta-model. We argue that, in principle, any language construct can be made generic by a mapping to a generic element of its component model. Moreover, for extensible language constructs additional mappings can be provided to support extensible component constructs. Using this approach, a generic and extensible component model can be derived from a given language and used both for generic and view-based programming. The presented approach provides significant automation support in the development of component models for arbitrary languages. As an example, we show the derivation of a component model using a Natural Semantics specification for a given language. The specification is defined using Relational Meta-Language (RML), which is an executable implementation of Natural Semantics.

[1]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[2]  Michael Kifer,et al.  HILOG: A Foundation for Higher-Order Logic Programming , 1993, J. Log. Program..

[3]  Ralf Lämmel,et al.  Reconstruction of paradigm shifts , 1999 .

[4]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[5]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[6]  Uwe Aßmann,et al.  Meta-programming grey-box connectors , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[7]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[8]  J. Lindskov Knudsen Object-oriented environments : the Mjølner approach , 1993 .

[9]  Adrian Pop,et al.  Composition of XML Dialects: A ModelicaXML Case Study , 2005, Electron. Notes Theor. Comput. Sci..

[10]  Uwe Aßmann,et al.  Composing Frameworks and Components for Families of Semantic Web Applications , 2003, PPSWR.

[11]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[12]  Uwe Aßmann,et al.  Meta-programming composers in second-generation component systems , 1998, Systems Implementation 2000.

[13]  Alexander A. Stepanov,et al.  Generic Programming , 1988, ISSAC.

[14]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[15]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

[16]  Mikael Pettersson,et al.  Compiling Natural Semantics , 1999, Lecture Notes in Computer Science.

[17]  M. Handzic 5 , 1824, The Banality of Heidegger.

[18]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .