巨集 巨集英語Macro是一種批量處理的稱謂 计算机科学裡的宏是一种抽象Abstraction它根据一系列预定义的规则替换一定的文本模式解释器或编译器在遇到宏时会自动进行这一模式替换对于编译语言宏展开在编译时发生进行宏展开的工具常被称为宏展开器宏这一术语也常常被用于许多类似的环境中它们是源自宏展开的概念这包括键盘宏和宏语言绝大多数情况下宏这个词的使用暗示着将小命令或动作转化为一系列指令 宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力 计算机语言如C语言或汇编语言有简单的宏系统由编译器或汇编器的预处理器实现 C语言的宏预处理器的工作只是进行简单的文本搜索和替换使用附加的文本处理语言如MC程序员可以获得更精巧的宏 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统宏的行为如同是函数对自身程序文本的变形并且可以应用全部语言来表达这种变形一个C宏可以定义一段语法的替换然而一个Lisp的宏却可以控制一节代码的计算 获得了控制代码的执行顺序见惰性计算和非限制函数的能力使得新创建的语法结构与语言内建的语法结构不可区分例如一种Lisp方言有cond而没有if就可以使用宏由前者定义后者Lisp语法的去部主要扩展比如面向对象的CLOS系统可以由宏来定义 MacroML有型别语法宏一种有效的理解方式是把这种语法宏看作是多阶段计算