編譯原理1.2

編譯器的結構(The Structure of a Compiler)

源程序的分析階段分為:線性分析,層次分析,語義分析。

1、詞法分析(Lexical Analysis)

2、語法分析(Syntax Analysis)

把源程序的記號分組,產生被編譯器用于生成代碼的語法短語。

詞法結構不要求遞歸,語法結構需要遞歸。

3、語義分析(Semantic Analysis)

語義分析階段檢查源程序的語義錯誤,并收集代碼產生階段時用到的類型信息。語義分析通過語法分析的層次結構來區分表達式和語句中的操作符和操作數。

4、中間碼的產生(Intermediate Code Generation)

源程序的中間代碼:易于產生;易于翻譯成目標程序。

5、代碼生成(Code Generation)

編譯器為源程序定義盒使用的變量選擇存儲單元,并把中間指令翻譯完成相同任務的機器代碼指令序列。

6、符號表的管理(Symbol-Table Management)

符號表時一個數據結構。每個標識符在符號表中都有一條記錄,記錄每個域對對應于該標識符的一個屬性。這種數據結構允許我們快速地找到每個標識符的記錄,并在該記錄中快速地存儲盒檢索信息。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、以 Hello World開篇 Hello World對程序員而言肯定是如雷貫耳。但是簡單的事物背后往往包含這...
    ZhengYaWei閱讀 8,556評論 10 84
  • Kotlin 源代碼編譯過程分析 我們知道,Kotlin基于Java虛擬機(JVM),通過Kotlin編譯器生成的...
    光劍書架上的書閱讀 2,922評論 0 13
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 線程可以理解為下載的通道,一個線程就是一個文件的下載通道,多線程也就是同時開啟好幾個下載通道。 首先我們先把tom...
    蛋蛋不哭閱讀 472評論 0 0
  • 心里很亂。 沒有勇氣去揭起傷疤。 怕人家說我負能量,便開始不敢過多發朋友圈和空間日志。 于是在這里寫寫吧。 從沒有...
    默魚牛奶閱讀 125評論 0 0