定义时而不是运行时被赋值。元编程语言因此等价于主编程语言，并且在需要的时候，已经存在的Lisp例程还可以直接重用于元编程。在程序中嵌入直接处理程序数据的解释器即可实现这一目的。现在已经有一些用于常用高级语言的实现，例如RemObject为Object Pascal编写的Pascal Script。另一个很常用的元编程例子是lex和yacc，这两个工具用来生成词法分析器和语法分析器。Yacc通常用作编译器的编译器，生成能够将高级语言转换为机器语言的工具。自产生程式是一种源代码等于输出的特殊的元程序