WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
編譯器
來自站長百科
編譯器就是將“高級語言”翻譯為“機器語言(低級語言)”的程序。一個現(xiàn)代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 匯編程序 (assembler) → 目標代碼 (object code) → 鏈接器 (Linker) → 可執(zhí)行程序 (executables)
詞條簡介[ ]
高級計算機語言便于人編寫,閱讀,維護。低階機器語言是計算機能直接解讀、運行的。編譯器將源程序(Source program)作為輸入,翻譯產(chǎn)生使用目標語言(Target language)的等價程序。源代碼一般為高級語言 (High-level language), 如 Pascal、C、C++、C#、Java等,而目標語言則是匯編語言或目標機器的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
工作原理[ ]
- 編譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執(zhí)行的目標代碼(通常為低級語言或機器語言)的翻譯過程。然而,也存在從低級語言到高級語言的編譯器,這類編譯器中用來從由高級語言生成的低級語言代碼重新生成高級語言代碼的又被叫做反編譯器。也有從一種高級語言生成另一種高級語言的編譯器,或者生成一種需要進一步處理的的中間代碼的編譯器(又叫級聯(lián))。
- 機器代碼所組成的目標文件。一組目標文件,不必是同一編譯器產(chǎn)生,但使用的編譯器必需采用同樣的輸出格式,可以鏈接在一起并生成可以由用戶直接執(zhí)行的可執(zhí)行程序。
編譯語言與直譯語言對比[ ]
- 許多人將高階程序語言分為兩類:編譯型語言和直譯型語言。然而,實際上,這些語言中的大多數(shù)既可用編譯型實現(xiàn)也可用直譯型實現(xiàn),分類實際上反映的是那種語言常見的實現(xiàn)方式。(但是,某些直譯型語言,很難用編譯型實現(xiàn)。比如那些允許 在線代碼更改 的直譯型語言。)
工作方法[ ]
- 首先編譯器進行語法分析,也就是要把那些字符串分離出來。
- 然后進行語義分析,就是把各個由語法分析分析出的語法單元的意義搞清楚。
- 最后生成的是目標文件,也稱為obj文件。
- 再經(jīng)過鏈接器的鏈接就可以生成最后的可執(zhí)行代碼了。
- 有些時候需要把多個文件產(chǎn)生的目標文件進行鏈接,產(chǎn)生最后的代碼。這一過程稱為交叉鏈接。