Abstract

A meta-program, regardless of the nature of the programming language, is a program whose data denotes another (object) program. The importance of meta-programming can be gauged from its large number of applications. These include compilers, interpreters, program analysers, and program transformers. Furthermore, a logic program when used in artificial intelligence often formalises some knowledge; in this case a meta-program is viewed as a meta-reasoner for reasoning about this knowledge.