巨集
计算机批处理 / 維基百科,自由的 encyclopedia
巨集(英語:Macro),是一種批量處理的稱謂。
此條目沒有列出任何參考或來源。 (2018年7月8日) |
Quick Facts 「巨集」的各地常用名稱, 中國大陸 ...
「巨集」的各地常用名稱 | |
---|---|
中國大陸 | 宏 |
臺灣 | 巨集 |
港澳 | 巨集 |
Close
電腦科學裏的巨集是一種抽象(Abstraction),它根據一系列預定義的規則替換一定的文字模式。直譯器或編譯器在遇到巨集時會自動進行這一模式替換。對於編譯語言,巨集展開在編譯時發生,進行巨集展開的工具常被稱為巨集展開器。巨集這一術語也常常被用於許多類似的環境中,它們是源自巨集展開的概念,這包括鍵盤巨集和巨集語言。絕大多數情況下,「巨集」這個詞的使用暗示着將小命令或動作轉化為一系列指令。
巨集的用途在於自動化頻繁使用的序列或者是獲得一種更強大的抽象能力。
電腦語言如C語言或匯編語言有簡單的巨集系統,由編譯器或組譯器的預處理器實現。
C語言的巨集預處理器的工作只是進行簡單的文字搜尋和替換,使用附加的文字處理語言如M4,C程式設計師可以獲得更精巧的巨集。
Lisp類語言如Common Lisp和Scheme有更精巧的巨集系統:巨集的行為如同是函數對自身程式文字的變形,並且可以應用全部語言來表達這種變形。一個C巨集可以定義一段語法的替換,然而一個Lisp的巨集卻可以控制一節代碼的計算。
獲得了控制代碼的執行順序(見惰性計算和非限制函數)的能力,使得新建立的語法結構與語言內建的語法結構不可區分。例如,一種Lisp方言有cond而沒有if,就可以使用巨集由前者定義後者。Lisp語法的去部主要擴充,比如物件導向的CLOS系統,可以由巨集來定義。
MacroML有型別語法巨集,一種有效的理解方式是把這種語法巨集看作是多階段計算。