編譯程式種類
編譯與解釋
編譯的五個階段
以上三個階段稱為編譯前端(包括優化中與目標機器無關的部分)
絕對指令**,可直接執行(機器語言)
可重新定位指令**:需要連線裝配(機器語言)
彙編指令**:需要進行彙編(組合語言)
以上兩個階段稱為編譯後端(與目標機有關)
遍和階段
乙個遍可以由若干段組成(比如,前三個階段通常組成一遍)
乙個階段也可以分若干遍來完成(比如,優化階段會掃瞄數遍來進行優化)
利用已有的編譯程式實現另一語言的編譯程式
移植方法(把一種機器上的編譯程式移植到另一種機器上)
自展技術(先建立乙個核心編譯器,再在該基礎上擴充套件,依次進行)
編譯程式自動產生(給出語言語法描述,就能自動產生編譯程式)
編譯原理概述
一 編譯過程分析 編譯軟體讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並按照作業系統對可執行檔案格式的要求鏈結生成可執行程式.二 編譯流程表 c源程式 c檔案 編輯器 預處理過程 c檔案 編譯 優化過程 s或.asm檔案 編譯器 ...
編譯原理概述
計算機不能直接理解 高階語言 只能直接理解 機器語言 所以必須要把高階語言 翻譯 成機器語言,計算機才能執行高階語言編寫的程式。我們可以粗略地把程式語言分為兩類 編譯型語言 和解釋型語言 常用的c c pascal和最近流行的go語言都是編譯型語言,而python ruby等則是解釋型語言,解釋型語...
編譯原理概述
編譯程式的工作過程 編譯程式的結構 編譯器的自舉和移植 高階語言轉換為可執行語言的過程 以gcc編譯器為例 原始檔為hello.c 步驟一 預處理。將原始檔hello.c預處理成hello.i。該步是將 include中包含的標頭檔案匯入到原始檔中。命令是gcc e hello.c 步驟二 編譯。將...