天天看點

自己動手構造編譯系統:編譯、彙編與連結2.1 編譯程式的設計

<b>第2章</b>

<b>  </b>

<b>編譯系統設計</b>

  

麻雀雖小,五髒俱全。

——《圍城》

   一個完善的工業化編譯系統是非常複雜的,為了清晰地描述它的結構,了解編譯系統的基本流程,不得不對它進行“大刀闊斧”地删減。這為自

己動手實作一個簡單但基本功能完整的編譯系統提供了可能。雖然本書設計的是簡化後的編譯系統,但保留了編譯系統的關鍵流程。正所

謂“麻雀雖小,五髒俱全”,本章從全局的角度描述了編譯系統的基本結構,并按照編譯、彙編和連結的流程來介紹其設計。

<b>2.1  編譯程式的設計</b>

編譯器是編譯系統的核心,主要負責解析源程式的語義,生成目标機器代碼。一般情況下,編譯流程包含詞法分析、文法分析、語義分析和代

生成四個階段。符号表管理和錯誤處理貫穿于整個編譯流程。如果編譯器支援代碼優化,那麼還需要優化器子產品。

  圖2-1展示了本書設計的優化編譯器的結構,下面分别對上述子產品的實作方案做簡單介紹。

圖2-1  編譯器結構