巨集- 維基百科,自由的百科全書

文章推薦指數: 80 %
投票人數:10人

巨集(英語:Macro),是一種批量處理的稱謂。

電腦科學裏的巨集是一種抽象(Abstraction),它根據一系列預定義的規則替換一定的文字模式。

直譯器或編譯器在遇到巨集 ... 巨集 維基百科,自由的百科全書 跳至導覽 跳至搜尋 此條目沒有列出任何參考或來源。

(2018年7月8日)維基百科所有的內容都應該可供查證。

請協助補充可靠來源以改善這篇條目。

無法查證的內容可能會因為異議提出而移除。

「巨集」的各地常用別名中國大陸宏港臺巨集 程式設計範式 指令式 程序式 塊結構 結構化 模組化 函數式 頭等函數 純函數式 函數級 隱式 串接 模式匹配 推導式 物件導向 類別為基 基於原型 契約式 面向切面 面向代理 陣列 數據流程 同步式 響應式 函數響應 串流處理 基於流程 多型 運算子多載 泛型 多分派 元程式設計 巨集 模板 反射式 同像性 元物件 面向特性 面向語言 聲明式程式設計 邏輯式 回答集 約束式 數據查詢 框架本體 並行模型 演員模型 交談循序程式 平行模型 分叉會合 整體同步 對映歸約 堆疊導向 非確定性 數據驅動 事件驅動 自動機 可微分 概率 量子 文學式 閱論編 巨集(英語:Macro),是一種批量處理的稱謂。

電腦科學裏的巨集是一種抽象(Abstraction),它根據一系列預定義的規則替換一定的文字模式。

直譯器或編譯器在遇到巨集時會自動進行這一模式替換。

對於編譯語言,巨集展開在編譯時發生,進行巨集展開的工具常被稱為巨集展開器。

巨集這一術語也常常被用於許多類似的環境中,它們是源自巨集展開的概念,這包括鍵盤巨集和巨集語言。

絕大多數情況下,「巨集」這個詞的使用暗示着將小命令或動作轉化為一系列指令。

巨集的用途在於自動化頻繁使用的序列或者是獲得一種更強大的抽象能力。

電腦語言如C語言或匯編語言有簡單的巨集系統,由編譯器或組譯器的預處理器實現。

C語言的巨集預處理器的工作只是進行簡單的文字搜尋和替換,使用附加的文字處理語言如M4,C程式設計師可以獲得更精巧的巨集。

Lisp類語言如CommonLisp和Scheme有更精巧的巨集系統:巨集的行為如同是函數對自身程式文字的變形,並且可以應用全部語言來表達這種變形。

一個C巨集可以定義一段語法的替換,然而一個Lisp的巨集卻可以控制一節代碼的計算。

獲得了控制代碼的執行順序(見惰性計算和非限制函數)的能力,使得新建立的語法結構與語言內建的語法結構不可區分。

例如,一種Lisp方言有cond而沒有if,就可以使用巨集由前者定義後者。

Lisp語法的去部主要擴充,比如物件導向的CLOS系統,可以由巨集來定義。

MacroML有型別語法巨集,一種有效的理解方式是把這種語法巨集看作是多階段計算。

目次 1巨集編程 2巨集應用 3鍵盤巨集 4巨集語言 5微軟Word和巨集病毒 6參考文獻 7參見 巨集程式設計[編輯] 在用一種不熟悉的巨集語言進行巨集程式設計時,可以這樣做,首先記錄下用戶想要巨集完成什麼,然後打開巨集檔案並嘗試理解命令結構如何工作。

也可以修改命令以調整巨集。

一些巨集語言,比如GreatPlains會計軟件的Dexterity執行時引擎,不能從其它數據源(如由逗號分隔的文字檔案)匯入數據。

這一限制可以通過用更強大的程式語言,如VBA來建立一個電腦程式在此弱程式語言裏生成一個特別的巨集來解決。

例如,可以對MicrosoftExcel巨集程式設計從擴充樣式表或文字檔案中讀取數據並建立GreatPlains.mac檔案,這一檔案被用於將特定的數據匯入GreatPlains.需要針對每一個新的數據集合生成新的.mac檔案。

巨集應用[編輯] 應用程式也可以使用一種和巨集類似機理的系統來允許用戶將一系列(一般是最常使用到的操作)自訂為一個步驟。

也就是用戶執行一系列操作,並且讓應用程式來「記住」這些操作以及順序。

更進階的用戶可以通過內建的巨集程式設計來直接使用那些應用程式的功能。

當使用一種不熟悉的巨集語言來程式設計時,比較有效的方法就是記錄一連串用戶希望得到的操作,然後通過閱讀應用程式記錄下來的巨集檔案來理解巨集命令的結構組成。

鍵盤巨集[編輯] 此章節沒有提供參考來源,內容可能無法查證。

鍵盤巨集和編輯器巨集分別在圖形化使用者介面和編輯器中被互動式地使用。

使用它們可以用簡短的擊鍵代替冗長的命令序列,並為重複性任務提供了一個簡單的自動化形式,但2009年已經有所改變。

程式設計師的文字編輯器Emacs(「編輯巨集」[EditingMACroS]的簡稱)是沿用這一思想的產物。

事實上,大多數編輯器是由巨集組成的。

Emacs最初被設計為編輯語言TECO的巨集集,後被移植為Lisp的一種方言EmacsLisp。

Vim也允許用戶錄製和播放簡單的鍵盤巨集。

巨集語言[編輯] 巨集語言是一類程式語言,其全部或多數計算是由擴充巨集完成的。

巨集語言並未在通用程式設計中廣泛使用,但在文字處理程式中應用普遍。

例如, C預處理器 InternetMacros(iOpus) M4(如前所述,源於AT&T,捆綁於Unix) Java 微軟Word和巨集病毒[編輯] 主條目:VisualBasicforApplications和巨集病毒 VisualBasicforApplications(VBA),是MicrosoftOffice裏的一種程式語言。

但由上面的定義,它完全不是一種巨集語言。

然而,它的功能已經從中發展並最終替代了用戶應用程式的巨集思想,所以它被廣泛地錯誤地稱為是一種巨集語言。

VBA可以存取許多作業系統函數並支援文件打開時自動執行巨集。

這使得用這種語言寫電腦病毒成為可能。

1990年代中後期,巨集病毒成為了最流行的電腦病毒類型之一。

其它的包括巨集語言的專案,如OpenOffice.org,故意從其巨集語言中排除了一些功能(如:自動執行)以避免破壞程式。

然而,這一特性在很多事務中受到歡迎。

參考文獻[編輯] 參見[編輯] 電腦科學主題 電腦程式設計主題 PHP SMX Stage2 手稿語言如Tcl和ECMAScript(即:ActionScript,DMDScript,JavaScript,JScript)已被嵌入應用程式,所以它們的執行類似巨集。

TeX VisualBasicScript(Microsoft) Lisp有一個強大而不整潔的巨集語法,可能會產生變數同名捕捉的問題。

(Lisphasapowerfulsystemofunhygenicsyntaxmacros,butispronetovariablecapture.) Scheme有整潔的巨集語法,可能是常被使用的最進階的無型別的巨集系統 MacroML是一個探尋靜態型別和巨集系統和諧點的實驗系統。

通用目的巨集處理器是一個上下文模式匹配巨集處理器,可以說他是正則表達式,EBNF和awk的組合。

閱論編程式語言類別範式 指令式 程序式 函數式 邏輯式 類別為基 物件導向 基於原型 基於物件 面向切面 數據流程 同步式 動態 指令碼 元程式設計 巨集 反射式 事件驅動 並行 基於演員 管道 陣列 串接 堆疊導向 聲明式 模板 可延伸(英語:Extensibleprogramming) 基於規則 領域特定 多重範式 觸控(英語:Tactileprogramminglanguage) 層次 機器 組譯 編譯 解釋 低階 進階 極進階 有關 世代 非英語基礎(英語:Non-English-basedprogramminglanguages) 視覺化 規範控制 GND:4125810-1 LCCN:sh85079429 取自"https://zh.wikipedia.org/w/index.php?title=巨集&oldid=71194547" 分類:​原始碼自動化軟件隱藏分類:​自2018年7月缺少來源的條目含有英語的條目需補充來源的條目拒絕當選首頁新條目推薦欄目的條目使用小型訊息框的頁面包含GND標識符的維基百科條目包含LCCN標識符的維基百科條目 導覽菜單 個人工具 尚未登入討論貢獻建立賬號登入 命名空間 條目討論 澳門繁體 不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體 視圖 閱讀編輯檢視歷史 更多 搜尋 導覽 首頁分類索引特色內容新聞動態最近修改隨機頁面資助維基百科 說明 說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科 工具 連結至此的頁面相關變更上載檔案特殊頁面靜態連結頁面資訊引用此頁維基數據項目 列印/匯出 下載為PDF可列印版 其他語言 العربيةCatalàČeštinaDanskDeutschEnglishEsperantoEspañolEestiEuskaraفارسیSuomiFrançaisעבריתहिन्दीMagyarBahasaIndonesiaÍslenskaItaliano日本語Қазақша한국어КыргызчаОлыкмарийNederlandsNorskbokmålPolskiPortuguêsRomânăРусскийSvenskaTürkçeУкраїнськаTiếngViệt 編輯連結



請為這篇文章評分?