Meta-Program Development as a Model Transformation Process

We formulate the development and use of the meta-program as the model and program transformation tasks. Such a vision is based on the previous discussions (see Chaps. 8, 9, 10). Meta-programs as the development artefact can be obtained, for example, through forward engineering, when meta-programs are developed in a top-down approach from high-level models such as feature models. Another way is to use a bottom-up approach and develop a meta-program from lower-level domain program instances. In this case, to develop a meta-program we need (1) a domain program model, (2) a set of domain program instances (in many cases, one instance is enough) and requirements/constraints for them and (3) a meta-program model. Furthermore, in this chapter, we introduce the concept of meta-meta-programming and consider the k-stage meta-program development as a transformation task. We detail the latter development process in the following sections.

[1]  Kyo Chul Kang,et al.  Usage Context as Key Driver for Feature Selection , 2010, SPLC.

[2]  Adam Megacz Multi-Stage Programs are Generalized Arrows , 2010, ArXiv.

[3]  Krzysztof Czarnecki,et al.  Feature models are views on ontologies , 2006 .

[4]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[5]  Frank Harary,et al.  Graph Theory , 2016 .

[6]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[7]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[8]  Walid Taha,et al.  Multi-stage Programming for Mainstream Languages , 2009 .

[9]  Walid Taha,et al.  Mint: Java multi-stage programming using weak separability , 2010, PLDI '10.

[10]  Mamta Garg,et al.  Reverse Engineering - Roadmap to Effective software Design , 2009 .

[11]  Patrick Brézillon,et al.  Modeling and Using Context , 1999, Lecture Notes in Computer Science.

[12]  Naoyasu Ubayashi,et al.  Context-Dependent Product Line Practice for Constructing Reliable Embedded Systems , 2010, SPLC.

[13]  Walid Taha,et al.  A Sound Reduction Semantics for Untyped CBN Multi-stage Computation. Or, the Theory of MetaML is Non-trivial (Extended Abstract) , 1999, PEPM.

[14]  Keith H. Bennett,et al.  A Staged Model for the Software Life Cycle , 2000, Computer.

[15]  Jacques Carette,et al.  Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code , 2005, GPCE'05.

[16]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[17]  Vytautas Štuikys,et al.  DEVELOPMENT OF WEB COMPONENT GENERATORS USING ONE-STAGE METAPROGRAMMING , 2009 .

[18]  Patrick Brézillon Task-Realization Models in Contextual Graphs , 2005, CONTEXT.