Metaprogramming allows one to read, modify, analyze and generate programs within a program itself.1
See also: Macros
[1] Metaprogramming, Wikipedia. (2019). https://en.wikipedia.org/w/index.php?title=Metaprogramming&oldid=915430210 (accessed March 10, 2020).