Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Compile-time meta-programming in a dynamically typed OO language
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Metamodel-based tool integration with moflon
Proceedings of the 30th international conference on Software engineering
Domain specific language implementation via compile-time meta-programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
GrafiXML, a Multi-target User Interface Builder Based on UsiXML
ICAS '08 Proceedings of the Fourth International Conference on Autonomic and Autonomous Systems
The Scheme Programming Language, 4th Edition
The Scheme Programming Language, 4th Edition
Easy model-driven development of multimedia user interfaces with GuiBuilder
UAHCI'07 Proceedings of the 4th international conference on Universal access in human computer interaction: coping with diversity
Mint: Java multi-stage programming using weak separability
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Supporting compile-time debugging and precise error reporting in meta-programs
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Hi-index | 0.00 |
In this paper we focus on generative model-driven engineering (MDE) tools and explore the notion of incorporating their deployment directly within the program source through metaprogramming. Our approach is based on the following principles: (i) the MDE tool is invoked as part of the metaprogram evaluation; (ii) instead of generating code, the MDE tool generates source fragments as abstract syntax trees (ASTs); (iii) the generated source fragments are directly inserted into the main program source through generator macros of the metaprogram; and (iv) the resulting program that incorporates both model code and custom application code can be normally compiled to produce the final application. Using this methodology, the metaprogram practically operates as an interactive editor for the program itself. We assess the validity of our approach with proof-of-concept case studies where all MDE deployment is performed through metaprogramming.