 These are sometimes called "macro languages", although in a somewhat different sense to textual-substitution macros like m4.Metaprogramming is the writing of programs that write or manipulate other programs, including themselves, as their data or that do part of the work that is otherwise done at run time during compile time.In many cases, this allows programmers to get more done in the same amount of time as they would take to write all the code manually.