編譯程式的工作過程

2021-07-30 15:42:18 字數 382 閱讀 7236

編譯程式的工作過程一般劃分為五個階段:詞法分析、語法分析、語義分析與中間**產生、優化、目標**生成。

詞法分析:也就是從左到右乙個乙個的讀入源程式,識別乙個單詞或符號,並進行歸類。

語法分析: 在詞法分析的基礎上,將單詞序列分解成各類語法短語,如「程式」,「語句」,「表示式」等。

語義分析:審查源程式是否有語義的錯誤,當不符合語言規範的時候,程式就會報錯。

中間**生成:在進行了語法和語義的分析工作之後,編譯程式將源程式變成了一種內部表示形式,這種內部表示形式叫做中間語言或中間**。

**優化:這個階段是對前階段的中間**進行變換或改造,目的是使生成的目標**更為高效,即節省時間和空間。

目標**生成:也就是把優化後的中間**變換成指令**或彙編**。

編譯過程和編譯程式筆記

圖 1.3 編譯的各個階段 詞法分析 從左到右乙個乙個字元地讀入源程式,對構成源程式的字元進行掃瞄和分解,從而識別出乙個個單詞。語法分析 在詞法分析的基礎上將單詞序列分解成各類語法短語,這些語法短語也稱為語法單位,可以表示成語法樹。語法分析依據的是語言的語法規則,即描述程式結構的規則 例如 id1 ...

編譯器工作過程

原始碼要執行,必須先轉成二進位制的機器碼。這是編譯器的任務。比如,下面這段原始碼 假定檔名叫做test.c 要先用編譯器處理一下,才能執行。這些命令到底在幹什麼?大多數的書籍和資料,都語焉不詳,只說這樣就可以編譯了,沒有進一步的解釋。本文將介紹編譯器的工作過程,也就是上面這三個命令各自的任務。我主要...

編譯器的工作過程

日期 2014年11月11日 原始碼要執行,必須先轉成二進位制的機器碼。這是編譯器的任務。比如,下面這段原始碼 假定檔名叫做test.c include int main void 要先用編譯器處理一下,才能執行。gcc test.c a.out hello,world 對於複雜的專案,編譯過程還必...