词义说明
metaprogramming 的核心含义是“编写能够把其他程序当作数据来处理、生成或修改的程序”。这一概念源于计算机科学中的“元”(meta)层次:普通程序处理数据,而元程序处理程序本身。其义项可分为三层。第一层是本义,指程序在运行时或编译时对自身或其他程序的结构、行为进行读取、分析、转换或生成,例如宏展开、反射、代码模板。第二层是引申义,指在程序设计语言层面提供抽象机制,使程序员能以更简洁的方式表达重复模式,如 C++ 模板元编程、Lisp 宏、Python 装饰器与元类。第三层是更宽泛的用法,指任何涉及“生成代码的代码”的工程实践,包括领域特定语言(DSL)的构建和编译器插件开发。各义项之间由具体到抽象递进,但都围绕“程序操作程序”这一中心。