不同的編譯型語言黔衡,由編寫到執(zhí)行的過程有些許不同嘉竟,但大致上是類似的晓褪。下面以 c 語言為例,討論編譯型語言使計算工作的過程商架。
第一步是預處理与纽,這一過程由預處理器完成侣签。不同語言所用的預處理器是不同的,C語言的預處理器主要對 c 語言進行文本替換急迂、宏展開影所、刪除注釋等處理。預處理結束后僚碎,得到以 .i 為擴展名的 c 語言文件猴娩。
第二步是編譯,這一過程由該語言的編譯器完成。編譯器將高級語言程序語句轉(zhuǎn)換為機器碼指令(即匯編語言)卷中。每一種高級語言都有自己的編譯器矛双。編譯過程結束后得到以 .s 為擴展名的文本文件。
第三步是匯編蟆豫,這一過程由操作系統(tǒng)的的匯編器完成议忽。匯編器將匯編語言文件轉(zhuǎn)化為可執(zhí)行文件(即包含機器碼的文件)。匯編的結果保存在以 .o 為擴展名思維文本文件中十减。
第四步是鏈接栈幸,這一過程由鏈接器完成。c 語言程序中帮辟,會用到標準 c 庫中的函數(shù)速址。在這個過程中鏈接器會將匯編后的 .o 文件與其他 .o 文件相聯(lián)系,以實現(xiàn)最終的運行由驹。