Meta-programming is the writing of programs with the ability to treat programs as their data.
Meta-programming is the writing of computer programs with the ability to treat programs as their data. Such programs can be be designed to read, generate, analyze and/or transform other programs, and even modify itself while running. The language in which the meta-program is written is called the meta-language. The language of the programs that are manipulated is called the object language.