Meta Programming

Program-Transformation.Org: The Program Transformation Wiki

Staged Meta Programming

Staged languages distinguish stages of execution. Many compile-time meta-programming systems distinguish only a run-time and a compile-time. MetaML does not restrict the number of stages.

Template Meta Programming

Macro Systems

Macros generate code. Macro systems that operate at the lexical level are usually called lexical macros. Lexical macro systems are often independent of specific programming language. Macro system that operate on a structured representations of source code are called syntax macros. Macro systems mainly vary in the what the macro is able to do with macro arguments and how the macros are to be invoked. Some macro systems allow the definition of a context-free syntax for the arguments of the macro. Hygience macro systems avoid unintended capturing of identifiers that are used in the context or in the macro definition.

Aspect-Oriented Programming

Quotation and Antiquotation

Systems