本書全面、系統(tǒng)地介紹了編譯程序的基本結(jié)構(gòu)及編譯技術(shù)的一般理論和常用方法。主要內(nèi)容包括:文法和形式語言、有限自動機、語法分析、詞法分析、語法制導(dǎo)翻譯和中間代碼生成、優(yōu)化、目標代碼生成、存儲組織與分配、錯誤的診察和處理、詞法分析與語法分析程序的自動生成等。
第1章 概論
1.1 程序設(shè)計語言及編譯程序
1.2 編譯過程和編譯程序結(jié)構(gòu)
1.3 編譯程序的實現(xiàn)途徑
習題1
第2章 文法和形式語言
2.1 符號和符號串
2.2 文法和語言
2.3 語法樹和二義性
2.4 文法的擴充BNF表示和語法圖
2.5 文法的實用限制
2.6 文法和語言的分類
2.7 正則表達式與正則集
習題2
第3章 有限自動機
3.1 狀態(tài)轉(zhuǎn)換圖
3.2 確定有限自動機
3.3 非確定有限自動機及其確定化
3.4 ε-自動機及其非ε化
3.5 自動機的簡化
3.6 正則表達式、正則文法與有限自動機的相互轉(zhuǎn)換
習題3
第4章 符號表
4.1 符號表的地位及作用
4.2 單詞的屬性及符號表的內(nèi)容
4.3 符號表的組織
4.4 符號表的管理
習題4
第5章 詞法分析
5.1 引言
5.2 源程序的輸入及預(yù)處理
5.3 單詞的表示和詞法分析程序的實現(xiàn)
5.4 詞法分析程序的自動生成
習題5
第6章 語法分析(1)
6.1 常用終結(jié)符號集
6.2 語法分析方法概述
6.3 遞歸子程序法
6.4 LL(1)分析法
6.5 算符優(yōu)先分析法
習題6
第7章 語法分析(2)——LR(K)分析方法
7.1 LR分析方法概述
7.2 活前綴與可歸前綴
7.3 LR(0)分析法
7.4 SLR(1)分析法
7.5 LR(1)分析法
7.6 LALR(1)分析法
習題7
第8章 常用中間語言
8.1 逆波蘭表示
8.2 四元式
8.3 三元式
8.4 樹表示
習題8
第9章 語法制導(dǎo)翻譯與中間代碼生成
9.1 語法制導(dǎo)翻譯概述
9.2 簡單算數(shù)表達式和賦值語句的翻譯
9.3 布爾表達式的翻譯
9.4 控制語句的翻譯
9.5 過程調(diào)用語句的翻譯
9.6 簡單說明語句的翻譯
習題9
第10章 運行時的存儲組織與分配
10.1 存儲組織概述
10.2 靜態(tài)存儲分配
10.3 棧式存儲分配
10.4 堆分配
10.5 參數(shù)傳遞
習題10
第11章 代碼優(yōu)化
11.1 優(yōu)化技術(shù)概述
11.2 局部優(yōu)化
11.3 控制流分析和循環(huán)優(yōu)化
11.4 數(shù)據(jù)流分析與全局優(yōu)化簡介
習題11
第12章 目標代碼生成
12.1 概述
12.2 一個計算機的模型
12.3 一個簡單的代碼生成程序
習題12
第13章 錯誤的診察和處理
13.1 錯誤的診察和處理概述
13.2 詞法分析階段的查錯處理
13.3 語法分析階段的查錯處理
13.4 語義錯誤的處理
習題13
附錄 TINY編譯器
Ⅰ TINY程序設(shè)計語言簡介
Ⅱ TINY語言的文法規(guī)則
Ⅲ TINY語言的編譯技術(shù)
Ⅳ 關(guān)于TINY編譯器的源程序文本
參考文獻
……