《編譯原理基礎與套用》是2011 年中國鐵道出版社 出版的圖書,作者是游曉明 。本書主要介紹電腦程式語言編譯程式的基本原理、設計方法和實現技術。
基本介紹
- 中文名:編譯原理基礎與套用
- 作者:游曉明
- 出版日期:2011年9月
- 出版單位:中國鐵道出版社
基本信息,目錄,內容簡介,
基本信息
書名:編譯原理基礎與套用
書號:7-113-13005
作者:游曉明 等
定價:28.00元
出版日期:2011年9月
版次:1-1
開本:16開
頁碼:276頁
出版單位:中國鐵道出版社
目錄
第1章 編譯概述 1
1.1 程式設計語言 2
1.2 翻譯程式 3
1.3 編譯程式的邏輯結構 5
1.3.1 詞法分析 5
1.3.2 語法分析 6
1.3.3 語義分析及中間代碼生成 6
1.3.4 代碼最佳化 7
1.3.5 目標代碼生成 7
1.3.6 符號表管理程式 8
1.3.7 錯誤檢查和處理程式 8
1.4 編譯程式的組織方式 9
1.4.1 單遍編譯程式 9
1.4.2 多遍編譯程式 9
1.5 編譯程式的前後處理器 10
1.6 編譯程式的生成 11
小結 12
習題一 12
第2章 文法和語言 13
2.1 程式設計語言的定義 14
2.1.1 語法 14
2.1.2 語義 14
2.2 基本概念和術語 15
2.2.1 字母表 15
2.2.2 符號串 15
2.2.3 符號串及其集合的運算 15
2.3 文法形式定義 17
2.4 語言和語法樹 19
2.4.1 直接推導定義 19
2.4.2 推導定義 19
2.4.3 規範推導 20
2.4.4 句型、句子和語言 20
2.4.5 語法樹和二義性 23
2.5 短語、簡單短語和句柄 25
2.6 文法的化簡與改造 27
2.6.1 無用符號和無用產生式的刪除 27
2.6.2 ε產生式的消除 28
2.6.3 單產生式的消除 31
2.7 文法和語言的喬姆斯基分類 31
2.8 PL/0編譯程式概述 34
2.8.1 PL/0語言的功能 34
2.8.2 PL/0程式示例 35
2.8.3 PL/0語言的語法描述 35
2.8.4 PL/0編譯程式的結構 38
小結 39
習題二 39
第3章 詞法分析 41
3.1 詞法分析器的功能 42
3.2 單詞符號 42
3.3 正規文法及狀態轉換圖 44
3.3.1 正規文法 44
3.3.2 由正規文法構造狀態轉換圖 49
3.4 有限狀態自動機 52
3.4.1 確定的有限狀態自動機 52
3.4.2 不確定的有限狀態自動機 56
3.4.3 NFA與DFA的轉化 57
3.4.4 正規表達式與有限狀態自動機的等價性 59
3.4.5 確定的有限狀態自動機的化簡 61
3.5 詞法分析程式的設計與實現 63
3.5.1 詞法分析程式的手工編寫 63
3.5.2 詞法分析程式的自動生成 66
3.6 PL/0編譯程式的詞法分析 70
小結 72
習題三 72
第4章 語法分析 74
4.1 語法分析器的功能 75
4.2 自頂向下分析 75
4.2.1 自頂向下分析面臨的問題 75
4.2.2 消除文法的左遞歸 78
4.2.3 消除左遞歸算法 79
4.2.4 回溯的消除及LL(1)文法 79
4.2.5 LL(1)文法的判斷條件 80
4.2.6 FIRST集合和FOLLOW集合及構造方法 81
4.2.7 LL(1)分析的基本方法 83
4.2.8 預測分析表的構造方法 83
4.2.9 預測分析控制程式的實現技術 84
4.2.10 遞歸下降分析 86
4.3 自底向上分析 92
4.3.1 規範推導、規範句型和規範歸約 92
4.3.2 自底向上分析方法的一般過程 94
4.3.3 算符優先分析 95
4.3.4 LR分析方法 106
4.3.5 LR分析表的構造 110
4.3.6 SLR(1)分析器 117
4.3.7 LR(1)分析器 121
4.3.8 LALR(1)分析器 122
4.4 語法分析程式的自動生成 124
4.4.1 語法分析程式的自動生成工具YACC 124
4.4.2 PL/0編譯程式的語法分析 130
小結 132
習題四 132
第5章 語法制導翻譯和中間代碼生成 135
5.1 語法制導翻譯的基本思想 136
5.2 屬性文法綜述 139
5.2.1 文法的屬性 139
5.2.2 屬性文法 139
5.3 語法制導翻譯的實現方法 141
5.4 中間代碼的形式 142
5.4.1 樹形表示法 142
5.4.2 逆波蘭表示法 143
5.4.3 三元式 144
5.4.4 四元式 145
5.5 語句的翻譯 146
5.5.1 說明語句(簡單變數)的翻譯 146
5.5.2 賦值語句的翻譯 147
5.5.3 布爾表達式的翻譯 151
5.5.4 標號和無條件轉移語句的翻譯 153
5.5.5 控制語句的翻譯 155
5.5.6 複合語句的翻譯 156
5.5.7 多分支控制語句case的翻譯 158
5.5.8 數組元素的翻譯 158
5.5.9 過程或函式調用語句的翻譯 159
5.5.10 數組說明的翻譯 160
小結 160
習題五 160
第6章 符號表與運行環境 162
6.1 符號表的組織和作用 162
6.1.1 符號表的作用和地位 163
6.1.2 符號表的內容 163
6.1.3 符號表的組織方式 163
6.2 存儲組織 167
6.2.1 目標程式運行時的組織 167
6.2.2 運行時存儲器的劃分 167
6.2.3 活動記錄 168
6.3 運行時的分配策略 169
6.3.1 靜態存儲分配 170
6.3.2 棧式分配 173
6.3.3 堆式動態存儲分配 180
小結 182
習題六 182
第7章 代碼最佳化 183
7.1 最佳化概述 183
7.2 局部最佳化 185
7.2.1 基本塊的劃分方法 186
7.2.2 利用DAG進行基本塊的最佳化 188
7.3 循環最佳化 192
7.3.1 程式流圖與循環 192
7.3.2 循環的查找 196
7.3.3 循環最佳化的實現 197
小結 207
習題七 207
第8章 目標代碼生成 209
8.1 代碼生成器 209
8.2 一個簡單的目標代碼生成器 211
8.2.1 待用信息與活躍信息 212
8.2.2 源程式到目標代碼生成示例 217
8.3 代碼生成器的開發方法 219
小結 220
習題八 220
第9章 面向對象語言編譯及並行編譯基礎 222
9.1 面向對象語言的概念 223
9.2 方法的編譯 224
9.3 繼承的編譯方案 226
9.3.1 單一繼承的編譯方案 226
9.3.2 多重繼承的編譯方案 227
9.4 並行編譯系統 228
9.4.1 並行編譯系統的結構 229
9.4.2 並行編譯方法 231
9.4.3 向量計算機 231
9.4.4 共享存儲器多處理機 232
9.4.5 分布存儲器大規模並行計算機 233
9.5 並行編譯基礎 233
9.5.1 向量與向量的次序 233
9.5.2 循環模型與索引空間 234
9.5.3 輸入與輸出集合 234
9.5.4 語句的執行順序 234
9.5.5 依賴關係定義 235
9.6 循環的向量化與並行化 236
9.7 循環變換技術 236
小結 237
習題九 237
第10章 嵌入式系統編譯器及其工具的套用開發 239
10.1 嵌入式系統概述 240
10.2 嵌入式系統常用晶片介紹 242
10.3 嵌入式系統結構、開發工具和編譯器 244
10.3.1 嵌入式系統的體系結構 244
10.3.2 嵌入式系統開發工具和編譯器 248
10.4 嵌入式系統C編譯器開發和相應開發工具的套用 249
10.5 嵌入式系統Java編譯器開發、JDK結構及開發工具的套用 252
10.5.1 JIT編譯方法 253
10.5.2 AOT編譯方法 256
10.5.3 JDK結構及開發工具的套用 258
小結 260
習題十 261
參考文獻 262
內容簡介
本書系統、全面地介紹了計算機高級語言編譯程式的基本原理和技術,對當前最新的嵌入式系統編譯技術做了較詳細的討論。主要內容包括詞法分析、語法分析、語法制導翻譯的語義分析與中間代碼生成、符號表與運行時存儲空間的組織與代碼最佳化、面向對象語言編譯方法及並行編譯基礎、嵌入式系統編譯器及其工具的套用開發。本書理論與實踐並重,每章之前都有導讀,最後均附有小結和習題,便於讀者學習。
本書適合作為普通高等學校計算機學科及相關專業的本科教材,也可供科技工作者及軟體研發人員學習和參考。