程式的編譯過程簡介

2021-08-17 19:54:47 字數 631 閱讀 7035

程式的編譯過程:將預處理後的檔案進行一系列詞法分析語法分析語義分析以及優化後產生相應的彙編**檔案。

步驟一:詞法分析。

將源**的字串行分割成一系列的記號。同時將表示符放到符號表,將數字、字串常量等存放到文字表。

步驟二:語法分析。

語法分析器對產生的記號進行語法分析,從而產生語法樹。即根據使用者給定的語法規則對輸入的記號序列進行解析,構建語法樹。

步驟三:語義分析。

語義分析是對表示式的語句進行分析,確定其意義。編譯器只能確定靜態語義,靜態語義包含宣告和型別的匹配以及型別轉換等。經過語義分析後,語法樹的表示式都被標識了型別。

步驟四:中間語言生成。

源**優化器將整個語法樹轉換成中間**,對一些表示式進行優化。

步驟五:目標**生成與優化。

**生成器將中間語言轉換成目標及其**。然後目標**優化器對目標**進行優化,比如選擇合適的定址方式、使用唯一來代替乘法運算、刪除多餘指令等。

編譯過程簡介

被隱藏的過程 預編譯 處理所有的注釋,以空格代替 將所有的 define刪除刪除 並且展開所有的巨集定義 處理條件編譯指令 if,ifdef,elif,else,endif 處理 include 展開被包含的檔案 保留編譯器需要使用的 pragma指令指令 預處理指令 編譯 對預處理檔案進行一系列詞...

編譯過程簡介

程式編譯和連線的過程如下所示 編譯器的工作包括 預編譯 編譯 彙編 預編譯 處理所有的注釋,以空格代替 將所有的 define刪除,並且展開所有的巨集定義 處理條件編譯指令 if,ifdef,elif,else,endif 處理 include,展開被包含的檔案 保留編譯器需要使用的 pragma指...

c 編譯過程簡介

編譯過程簡介 目標檔案 編譯後生成的檔案,以機器碼的形式包含了編譯單元裡所有的函式和資料 匯出符號表 未解決符號表 位址重定向表等 第二種是動態鏈結程式 動態庫 將它與另乙個可 執行檔案及其它的共享目標檔案結合到一起,建立乙個程序映象 可執行檔案 o檔案在編譯後就能獲得,但是庫檔案 可執行檔案都需要...