Metaprogramming. Creation of programs which in their turn create other programs as the result of their work, or change or amend themselves during execution. An example of metaprogramming: a C++ program generates SQL script to save data into a relational database. We can speak of two types of metaprogramming: metaprogramming on the stage of compilation (code generation) and metaprogramming on the stage of execution (code self-modification). Under metaprogramming within the framework of VivaCore library we should understand the possibility of extending C/C++ syntax and functionality in order to create our own programming language. Metaprograms written in this programming language can be then translated with the help of VivaCore into C/C++ code and compiled by an third-party compiler.
- Wikipedia. "Metaprogramming"
- Jonathan Bartlett. The art of metaprogramming, Part 1: Introduction to metaprogramming
- David Abrahams, Aleksey Gurtovoy. C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. Addison Wesley, 2005, ISBN: 0321227255