本書介紹編譯原理理論基礎(chǔ)及其實現(xiàn)方法,強調(diào)語言的形式化定義、編譯技術(shù)的各種概念及實現(xiàn)過程的具體方法。介紹過程以算法為核心,力求簡單明了反映編譯的基礎(chǔ)知識。從形式語言理論角度討論詞法分析和語法分析技術(shù)。第3版增加了經(jīng)典習題的分析和解答,以幫助讀者更好地理解和鞏固所學內(nèi)容。
1 引論
1.1 程序設(shè)計語言與編譯
1.2 編譯程序概述
1.2.1 詞法分析
1.2.2 語法分析
1.2.3 中間代碼生成
1.2.4 優(yōu)化
1.2.5 目標代碼生成
1.2.6 表格與表格管理
1.2.7 出錯處理
1.2.8 遍
1.3 編譯程序生成
1.4 編譯程序構(gòu)造
習題
2 編譯基礎(chǔ)知識
2.1 字母表與符號串
2.1.1 符號串集合的運算
2.1.2 符號串的前綴、后綴及子串
2.1.3 字母表的閉包與正閉包
2.2 文法與語言的關(guān)系
2.2.1 文法的直觀概念
2.2.2 文法與語言的形式定義
2.3 文法構(gòu)造與文法簡化
2.3.1 由語言構(gòu)造文法的例子
2.3.2 文法的簡化
2.3.3 構(gòu)造無e產(chǎn)生式的上下文無關(guān)文法
2.4 語法樹與文法的二義性
2.4.1 語法樹
2.4.2 文法的二義性
習題
3 詞法分析
3.1 正規(guī)文法和有限自動機
3.1 _1正規(guī)文法、正規(guī)集與正規(guī)式
3.1.2 有限自動機
3.1.3 正規(guī)式與有限自動機之間的關(guān)系
3.1.4 正規(guī)文法與有限自動機
3.2 詞法分析程序
3.2.1 預(yù)處理與超前搜索
3.2.2 掃描器的輸出格式
3.2.3 掃描器的設(shè)計
3.3 詞法分析程序的自動生成
3.3.1 LEX語言
3.3.2 LEX編譯程序的構(gòu)造
習題
4 自上而下語法分析
4.1 下推自動機
4.2 自上而下分析法的一般問題
4.2.1 消除左遞歸
4.2.2 消除回溯——預(yù)測與提左因子
4.3 預(yù)測分析程序與LL(1)文法
4.3.1 求串a(chǎn)的終結(jié)符集和非終結(jié)符A的隨符集
4.3.2 構(gòu)造預(yù)測分析表
4.3.3 狀態(tài)表
4.4 遞歸下降分析法
習題
5 優(yōu)先分析法
5.1 簡單優(yōu)先分析方法
5.1.1 基本思想
5.1.2 有關(guān)文法的一些關(guān)系
5.1.3 優(yōu)先矩陣的構(gòu)造算法
5.1.4 簡單優(yōu)先分析算法
5.2 算符優(yōu)先分析法
5.2.1 算符優(yōu)先分析技術(shù)的引進
5.2.2 算符優(yōu)先文法及優(yōu)先表的構(gòu)造
5.2.3 算符優(yōu)先分析的若干問題
5.3 優(yōu)先函數(shù)
習題
6 LR分析法及分析程序自動構(gòu)造
6.1 LR分析器
6.2 LR(O)項目集族和LR(0)分析表的構(gòu)造
6.2.1 LR(O)項目集規(guī)范族的構(gòu)造
6.2.2 LR(O)分析表的構(gòu)造算法
6.3 SLR分析表的構(gòu)造
6.4 規(guī)范LR分析表的構(gòu)造
6.4.1 構(gòu)造LR(1)項目集規(guī)范族的算法
6.4.2 構(gòu)造LR(1)分析表的算法
6.5 LALR分析表構(gòu)造
6.5.1 基本思想
6.5.2 構(gòu)造LALR分析表的算法
6.6 二義文法的應(yīng)用
6.7 分析表的自動生成
6.7.1 終結(jié)符和產(chǎn)生式的優(yōu)先級
6.7.2 結(jié)合規(guī)則
6.7.3 LR分析表的安排
習題
7 語法制導(dǎo)翻譯并產(chǎn)生中間代碼
7.1 概述
7.2 簡單算術(shù)表達式和賦值語句的翻譯
7.2.1 四元式
7.2.2 賦值語句的翻譯
7.2.3 類型轉(zhuǎn)換
7.3 布爾表達式的翻譯
7.3.1 布爾表達式在邏輯演算中的翻譯
7.3.2 控制語句中布爾式的翻譯
7.4 控制語句的翻譯
7.4.1 標號和轉(zhuǎn)移語句
7.4.2 IF語句的翻譯
7.4.3 wHILE語句的翻譯
7.4.4 REPEAT語句的翻譯
7.4.5 循環(huán)FOR語句的翻譯
7.4.6 分情語句的翻譯
7.4.7 復(fù)合語句的翻譯
7.5 數(shù)組元素及其在賦值語句中的翻譯
7.5.1 數(shù)組及其下標變量地址的計算
7.5.2 數(shù)組元素引用的中間代碼形式
7.5.3 按行存放的賦值語句中數(shù)組元素的翻譯
7.5.4 按列存放的賦值語句中數(shù)組元素的翻譯
7.6 過程調(diào)用語句
7.6.1 參數(shù)傳遞
7.6.2 過程調(diào)用語句的翻譯
7.6.3 過程調(diào)用和數(shù)組元素相混淆的處理
7.7 說明語句的翻譯