第1章 緒論
1.1 語言翻譯與編譯程序
1.2 編譯器與解釋器
1.3 編譯程序的工作原理與基本結構
1.3.1 高級語言的主要成分
1.3.2 編譯的基本過程
1.3.3 編譯各階段的工作
1.3.4 編譯程序的基本結構
1.3.5 編譯的前端和后端
1.3.6 編譯的遍數
1.4 編譯器的編寫
1.5 本章小結
習題
第2章 詞法分析
2.1 詞法分析概述
2.1.1 相關問題
2.1.2 詞法分析器的功能和工作方式
2.1.3 源程序的輸入及預處理
2.2 模式的形式化描述
2.2.1 語言及其基本概念
2.2.2 正規(guī)式與正規(guī)集
2.2.3 狀態(tài)轉換圖
2.3 有限自動機
2.3.1 有限自動機(Finite Automata,FA)
2.3.2 非確定型有限自動機(Nondeterministic Finite Automata,NFlA)
2.3.3 確定型有限自動機(deterministic Finite Automata,DFA)
2.4 正規(guī)式到詞法分析器
2.4.1 正規(guī)式到NFA
2.4.2 NFA到DFA的變換
2.4.3 DFA的化簡
2.5 詞法分析器的自動生成
2.6 本章小結
習題
第3章 語法分析
3.1 上下文無關文法(Context Free-Grammar,GFG)
3.1.1 上下文無關文法的定義
3.1.2 語法分析的基本術語
3.1.3 語法樹和二義性
3.1.4 文法與語言的分類
3.2 自上而下的語法分析
3.2.1 自上而下語法分析的一般方法和基本問題
3.2.2 消除文法的左遞歸
3.2.3 消除回溯提取左因子
3.2.4 遞歸下降分析法
3.2.5 預測分析法
3.3 自下而上的語法分析
3.3.1 自下而上語法分析的一般方法和基本問題
3.3.2 符號棧的使用
3.3.3 LR分析法
3.3.4 LR(O)分析表的構造
3.3.5 SLR(1)分析表的構造
3.4 二義文法的應用
3.5 語法分析器的自動生成工具YACC簡介
3.6 本章小結
習題
第4章 語法制導翻譯與中間代碼生成
4.1 語法制導翻譯
4.1.1 語義分析
4.1.2 屬性文法
4.1.3 語義規(guī)則
4.1.4 LR分析的翻譯概述
4.1.5 遞歸下降分析的翻譯概述
4.2 間代碼
4.2.1 后綴式
4.2.2 三地址代碼
4.2.3 圖形表示
4.3 說明性語句的翻譯
4.3.1 變量和數組變量的聲明
4.3.2 過程的定義、聲明和過程調用的處理
4.3.3 記錄中的域名
4.4 執(zhí)行性語句的翻譯
4.4.1 賦值語句的翻譯
4.4.2 布爾表達式的翻譯
4.4.3 控制語句的翻譯
4.4.4 過程調用
4.4.5 類型檢查
4.5 本章小題
習題
第5章 符號表與運行時環(huán)境
5.1 符號表
5.1.1 符號表的組織與作用
5.1.2 符號表的整理與查找
5.1.3 作用域規(guī)則
5.2 目標程序運行時的活動
5.2.1 過程與活動
5.2.2 活動記錄
5.2.3 名字綁定
5.3 運行時存儲器的劃分
5.3.1 存儲器劃分
5.3.2 存儲分配策略
5.4 本章小結
習題
第6章 代碼優(yōu)化與代碼生成
6.1 代碼優(yōu)化
6.1.1 局部優(yōu)化
6.1.2 循環(huán)優(yōu)化
6.1.3 循環(huán)優(yōu)化舉例
6.2 代碼生成的相關問題
6.3 簡單的代碼生成器
6.3.1 基本塊和流程
6.3.2 寄存器分配
6.3.3 目標代碼生成算法
6.4 本章小結
習題