高等學校規劃教材:編譯原理簡明教程

《高等學校規劃教材:編譯原理簡明教程》是2012年1月1日電子工業出版社出版的圖書,作者是楊明。

基本信息

內容簡介

編譯原理簡明教程編譯原理簡明教程

楊明、姜乃松、蔡維玲編著的編譯概述、文法和語言、詞法分析與有限自動機、自頂向下的語法分析、自底向上的語法分析、屬性文法、語義分析與語法制導的翻譯、運行時環境、目標代碼生成、代碼最佳化、並行編譯技術、面向對象語言的語法制導翻譯《編譯原理簡明教程》先進、實用、簡潔、通俗,可讀性好,還免費提供電子教案和習題解答。

《編譯原理簡明教程》適合作為高等學校計算機及相關專業教材,也可作為IT技術人員的參考書。

圖書目錄

第1章 編譯概述 1

1.1 翻譯程式 1

1.2 編譯過程和編譯程式的基本結構 2

1.3 編譯程式的分類和生成方法 5

1.3.1 編譯程式的分類 5

1.3.2 編譯程式的生成方法 6

1.4 編譯技術的套用 7

本章小結 7

習題1 7

第2章 文法與語言 8

2.1 符號串與語言 8

2.1.1 字母表 8

2.1.2 符號串 8

2.1.3 符號串的集合——語言 9

2.2 文法和語言的形式化定義 10

2.2.1 文法的形式化定義 10

2.2.2 語言的形式化定義 14

2.2.3 短語、直接短語和句柄 16

2.2.4 規範推導和規範歸約17

2.3 語法分析樹與文法的二義性 18

2.3.1 語法分析樹 18

2.3.2 文法的二義性 19

2.3.3 二義性的消除 20

2.4 文法的化簡 22

2.5 語言的分類 23

本章小結 25

習題2 26

第3章 詞法分析與有限自動機 28

3.1 詞法分析器的設計 28

3.1.1 詞法分析器的任務 28

3.1.2 詞法分析器的輸出形式 29

3.2 詞法分析器的手工構造 30

3.2.1 確定的有限自動機 31

3.2.2 構造單詞的確定有限自動機 32

3.2.3 編寫一個C語言詞法分析器 34

3.3 有限自動機及其化簡 36

3.3.1 不確定有限自動機 36

3.3.2 不確定有限自動機的化簡 37

3.3.3 確定有限自動機的化簡 40

3.4正規文法正規式和有限自動機之間的關係 42

3.4.1 正規式與正規集 42

3.4.2 正規式與正規文法的關係 43

3.4.3 正規文法與有限自動機之間的轉換 45

3.4.4 正規式與有限自動機之間的轉換 47

3.5 詞法分析程式自動生成器——Lex 49

3.5.1 Lex的功能 50

3.5.2 Lex源程式的組成 50

3.5.3 Lex編譯器的實現原理 51

3.5.4 一個生成C語言詞法分析器的Lex程式格式 51

本章小結 53

習題3 53

第4章 自頂向下的語法分析 55

4.1語法分析器的功能 55

4.2 不確定的自頂向下的分析方法 56

4.3LL(1)分析方法 57

4.3.1 回溯的判別條件與LL(1)文法57

4.3.2 左遞歸文法的改造 58

4.3.3 回溯的消除 60

4.4 構造遞歸下降分析程式 61

4.5 非遞歸的預測分析方法 62

4.5.1 預測分析程式工作原理 63

4.5.2 構造預測分析表(或稱LL(1)分析表) 64

4.5.3 預測分析的出錯處理 66

本章小結 68

習題4 68

第5章 自底向上的語法分析 70

5.1 引言 70

5.2 自底向上的語法分析面臨的問題 70

5.3 算符優先分析技術 71

5.3.1 算符優先關係的定義 71

5.3.2 算符優先關係表的生成 74

5.3.3 算符優先分析總控程式 76

5.3.4 優先函式及其生成 78

5.4 LR分析技術 81

5.4.1 LR分析技術概述 81

5.4.2 LR(0)分析法 82

5.4.3SLR(1)分析技術 89

5.4.4 LR(1)分析技術 90

5.4.5 LALR(1)分析技術 94

5.5 二義性文法的套用 95

5.6 語法分析器自動生成器——YACC 96

5.6.1 基本原理與工作過程 96

5.6.2 C語法分析器的自動生成 102

本章小結 102

習題5 102

第6章 屬性文法 104

6.1 屬性文法 104

6.1.1 屬性文法的定義 104

6.1.2 綜合屬性 106

6.1.3 繼承屬性 106

6.1.4 依賴圖 107

6.1.5 屬性文法的計算順序 108

6.2 S-屬性定義及其自底向上的計算 109

6.3 L-屬性定義及其自頂向下的計算 111

6.4 自底向上計算繼承屬性 115

6.4.1 刪除翻譯方案中嵌入的動作 115

6.4.2 分析棧中的繼承屬性 115

6.4.3 模擬繼承屬性的計算 117

本章小結 119

習題6 119

第7章 語義分析與語法制導的翻譯 121

7.1 語義分析的主要任務 121

7.2 中間語言 121

7.2.1 圖表示 122

7.2.2抽象語法樹122

7.2.3 三地址代碼 123

7.2.4 四元式 124

7.2.5 三元式 124

7.2.6逆波蘭式表示 125

7.3 聲明語句的翻譯 125

7.3.1 C語言變數聲明語句的翻譯 125

7.3.2 C語言函式定義的翻譯 126

7.3.3 C語言數組定義的翻譯 131

7.4 C表達式與簡單賦值語句的翻譯 133

7.5 支持C數組的賦值語句的翻譯 134

7.6 C語言布爾表達式的翻譯 136

7.6.1 作為數值計算的布爾表達式的翻譯 137

7.6.2 作為條件控制用的布爾表達式的翻譯 138

7.7 C語言中if語句的翻譯 140

7.8 C語言中while語句的翻譯 145

7.9 C語言中switch語句的翻譯 147

7.10 C語言中break語句的翻譯 148

7.11 C語言continue語句的翻譯 149

7.12 C語言中標號與goto語句的翻譯 150

7.13 C語言函式調用語句的翻譯 150

本章小結 152

習題7 152

第8章 運行時環境 153

8.1 概述 153

8.2 符號表 154

8.2.1 符號表的作用與結構 154

8.2.2 符號表的管理 154

8.2.3 C語言中的符號表 155

8.3 存儲分配策略 157

8.3.1 靜態存儲分配策略 157

8.3.2 棧式存儲分配策略 157

8.3.3 堆式存儲分配策略 158

8.4 存儲空間的組織 158

8.4.1 運行時記憶體空間的劃分 158

8.4.2 函式與活動記錄 158

*8.5 非局部變數的訪問 159

8.6 C語言的存儲分配 163

8.6.1 C語言的活動記錄結構 163

8.6.2 入口指令的自動生成 165

8.6.3 出口指令的自動生成 166

8.7 垃圾回收機制 166

8.8 運行庫管理 168

8.9 連線程式與裝配程式 168

本章小結 169

習題8 169

第9章 目標代碼生成 171

9.1 概述 171

9.2 一個面向棧的計算機模型 171

9.3中間代碼生成目標代碼 173

9.3.1逆波蘭式生成目標代碼 173

9.3.2 四元式生成目標代碼 174

9.4 C語言目標代碼生成 176

9.4.1 目標檔案結構 176

9.4.2 從內部語法樹生成目標代碼 177

9.5 暫存器分配算法 179

本章小結 181

習題9 182

第10章 代碼最佳化 183

10.1 基本概念 183

10.1.1 最佳化的定義 183

10.1.2 最佳化的原則 183

10.1.3 最佳化的分類 183

10.1.4 代碼最佳化器的結構 184

10.2 基本塊的概念及最佳化舉例 185

10.2.1 基本塊的概念 185

10.2.2 流圖 185

10.2.3 最佳化舉例 186

10.3 基本塊內最佳化 189

10.3.1 塊內最佳化技術 189

10.3.2 基本塊的DAG 190

10.4 循環最佳化 195

10.4.1 循環的查找 195

10.4.2 循環最佳化技術 197

本章小結 201

習題10 201

第11章 並行編譯技術 204

11.1 並行處理 204

11.1.1 並行體系結構 204

11.1.2 並行軟體系統 205

11.1.3 並行程式設計 205

11.2 並行編譯系統的功能和結構 206

11.2.1 並行編譯系統的功能 206

11.2.2 並行編譯系統的結構 206

11.3 向量語言編譯技術 207

11.4 共享存儲器並行機的並行編譯技術 207

本章小結 208

習題11 208

第12章 面向對象語言的語法制導翻譯 209

12.1 面向對象語言理論基礎 209

12.2 mini-C++的對象布局模型的設計 210

12.3 mini-C++的函式名字轉換方案的設計 211

12.4 mini-C++的try-catch語句的翻譯 213

12.5 mini-C++的非靜態函式的翻譯 215

12.6 mini-C++的函式重載的翻譯 216

12.7 mini-C++的單一繼承的編譯處理 217

12.8 mini-C++的多重繼承的編譯處理 219

12.9 mini-C++的虛基類的編譯處理 221

12.10 mini-C++的單一繼承下虛函式重寫的翻譯 223

12.11 mini-C++的多重繼承下虛函式重寫的翻譯 224

12.12 mini-C++的運算符重載的翻譯 224

12.13 mini-C++的模板的翻譯 225

本章小結 225

習題12 225

附錄A C語言的YACC源程式 226

參考文獻 232

相關詞條

相關搜尋

熱門詞條

聯絡我們