Meta-program is a program that uses other program as its data. For example, meta-interpreter of a given programming language is an interpreter of that language written in the same language.