Source Code Generator Based on Dynamic Frames

This paper presents the model of source code generator based on dynamic frames. The model is named as the SCT model because if its three basic components: Specification (S), which describes the application characteristics, Configuration (C), which describes the rules for building applications, and Templates (T), which refer to application building blocks. The process of code generation dynamically creates XML frames containing all building elements (S, C and T) until final code is produced. This approach is compared to existing XVCL frames based model for source code generating. The SCT model is described by both XML syntax and the appropriate graphical elements. The SCT model is aimed to build complete applications, not just skeletons. The main advantages of the presented model are its textual and graphic description, a fully configurable generator, and the reduced overhead of the generated source code. The presented SCT model is shown on development of web application example in order to demonstrate its features and justify our design choices.

[1]  Thomas Leich,et al.  Aspectual Feature Modules , 2008, IEEE Transactions on Software Engineering.

[2]  Rajeev R. Raje,et al.  UniFrame: A Unified Framework for Developing Service-Oriented, Component-Based Distributed Software Systems , 2005 .

[3]  Don S. Batory Product-line architectures, aspects, and reuse , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[4]  Stan Jarzabek,et al.  Cost-effective engineering of web applications pragmatic reuse: building web application product lines , 2006, ICSE '06.

[5]  Philipp Limbourg,et al.  Multi-objective optimization of generalized reliability design problems using feature models - A concept for early design stages , 2008, Reliab. Eng. Syst. Saf..

[6]  Enn Tyugu,et al.  Visual tool for generative programming , 2005, ESEC/FSE-13.

[7]  Stan Jarzabek,et al.  XVCL: a mechanism for handling variants in software product lines , 2004, Sci. Comput. Program..

[8]  Don Batory,et al.  A Comparison of Generative Approaches : XVCL and GenVoca , 2004 .

[9]  Walid Taha,et al.  Multi-stage programming with explicit annotations , 1997 .

[10]  Krzysztof Czarnecki,et al.  Generative Programming: Methods, Techniques, and Applications , 2002, ICSR.

[11]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[12]  Juha-Pekka Tolvanen,et al.  MetaEdit+: defining and using domain-specific modeling languages and code generators , 2003, OOPSLA '03.

[13]  Dawson R. Engler,et al.  C and tcc: a language and compiler for dynamic code generation , 1999, TOPL.

[14]  Juan de Lara,et al.  Defining visual notations and their manipulation through meta-modelling and graph transformation , 2004, J. Vis. Lang. Comput..

[15]  Oscar Díaz,et al.  Generative metaprogramming , 2007, GPCE '07.

[16]  Mario Konecki,et al.  PHP Scripts Generator for Remote Database Administration Based on C++ Generative Objects , 2007 .

[17]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[18]  Hidehiko Masuhara,et al.  DynJava: Type Safe Dynamic Code Generation in Java , 2001 .