編譯方法及套用

編譯方法及套用

《編譯方法及套用》是2016年11月北京航空航天大學出版社出版的圖書,作者是許清、劉香芹。

基本介紹

  • 書名:編譯方法及套用
  • 作者:許清、劉香芹
  • 出版社:北京航空航天大學出版社
  • 出版時間:2016年11月
  • 定價:39 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787512421431
內容簡介,圖書目錄,

內容簡介

本書全面地討論了編譯器設計方面的主要問題,包括充店求膠詞法分析、語法分析、語法制導翻譯、目標代碼生成等分析技術。作者長期從事編譯方法課程的教學工作拘鞏,將多年的教學體會與認識融入教材中,選擇學生熟悉的C語言作為編譯對象語言融入課程中,不僅包含編譯原理的基本理論,還列舉了一些實例,特別是將編譯理論與實際套用相結合,使學生可以體會到編譯的理論和技術在軟體設計中的套用。
本書有較強的實用性,可作為套用型本科計算機科學與技術專業、普通本科計算機及相關專業編譯原理課程的教材,也可以供相關專業的研究生、計算機軟體技術人員等作參考。

圖書目錄

第1章 編譯程式概述………………………………………………………………… 1
1.1 高級語言概述……………………………………………………………… 1
1.2 編譯程式…………………………………………………………………… 2
1.2.1 編譯程式與解釋程式……………………………………………… 2
1.2.2 編譯程式的工作過程……………………………………………… 3
1.3 編譯程式的結構…………………………………………………………… 8
1.3.1 編譯程式結構簡介………………………………………………… 8
1.3.2 符號表管理………………………………………………………… 10
1.3.3 出錯處理…………………………………………………………… 10
1.3.4 遍的概念…………………………………………………………… 11
1.4 C語言編譯器……………………………………………………………… 12
1.5 編譯程式的生成…………………………………………………………… 13
1.6 小 結……………………………………………………………………… 14
習題1 …………………………………………………………………………… 15
第2章 高級語言的語法描述……………………………………………………… 16
2.1 程式語言的定義…………………………………………………………… 16
2.1.1 語 法……………………………………………………………… 16
2.1.2 語 義……………………………………………………………… 17
2.2 程式語言的語法基礎……………………………………………………… 18
2.2.1 文法的討論………………………………………………………… 18
2.2.2 符號和符號串……………………………………………………… 20
2.2.3 文法和語言的形式定義…………………………………………… 22
2.2.4 語法分析樹和二義性……………………………………………… 26
2.3 C語言與文法……………………………………………………………… 30
2.4 形式語言簡介……………………………巴巴槓………………………………… 30
2.5 小 結……………………………………………………………………… 35
習題2 …………………………………………………………………………… 35
第3章 詞法分析…………………………………………………………………… 37
3.1 詞法分析器的功能及機內表示…………………………………………… 37
3.1.1 詞法分析器的功能…………………………………………櫃榆遷……… 37
3.1.2 單詞的機內表示………………………………海催拳…………………… 38
3.2 單詞的描述方法…………………………………………………………… 39
3.2.1 正規文法……才頌舉……………………………………………………… 39
3.2.2 正規表達式………………………………………………………… 40
3.3 詞法分析器的設計………………………………………………………… 42
3.3.1 設計詞法分析器船船屑腿需要考慮的主要問題…………………………… 42
3.3.2 符號表……………………………………………………………… 44
3.3.3 錯誤處理…………………………………………………………… 45
3.3.4 詞法分析器的設計工具…………………………………………… 46
3.3.5 狀態轉換圖的實現………………………………………………… 49
3.4 有限自動機簡介…………………………………………………………… 50
3.4.1 確定有限自動機…………………………………………………… 52
3.4.2 非確定有限自動機………………………………………………… 54
3.4.3 正規式、正規文法和有限自動機之間的關係…………………… 54
3.4.4 由正規式構造NFA、NFA 確定化為DFA、DFA 化簡………… 62
3.4.5 確定的有限自動機化簡…………………………………………… 70
3.5 詞法分析程式的自動產生………………………………………………… 72
3.5.1 語言LEX的一般描述…………………………………………… 73
3.5.2 LEX 的實現……………………………………………………… 75
3.6 (C語言小子集)詞法分析程式設計……………………………………… 78
3.7 正規(則)表達式的套用…………………………………………………… 80
3.8 小 結……………………………………………………………………… 81
習題3 …………………………………………………………………………… 81
第4章 語法分析…………………………………………………………………… 84
4.1 語法分析程式的功能……………………………………………………… 84
4.2 語法成分的表示…………………………………………………………… 84
4.3 語法分析———自上而下分析……………………………………………… 85
4.3.1 自上而下分析的基本問題………………………………………… 86
4.3.2 遞歸下降分析……………………………………………………… 96
4.3.3 LL(1)分析法……………………………………………………… 99
4.4 語法分析———自下而上分析…………………………………………… 106
4.4.1 自下而上分析的基本問題……………………………………… 106
4.4.2 規範歸約簡述…………………………………………………… 109
4.4.3 符號棧的使用與語法樹的表示………………………………… 112
4.4.4 算符優先分析…………………………………………………… 113
4.4.5 LR分析法……………………………………………………… 126
4.5 語法分析器的自動產生工具YACC …………………………………… 145
4.6 小 結…………………………………………………………………… 149
習題4…………………………………………………………………………… 150
第5章 語義分析與中間代碼的生成……………………………………………… 153
5.1 語義分析的功能………………………………………………………… 153
5.2 屬性文法………………………………………………………………… 154
5.2.1 屬性的類型……………………………………………………… 154
5.2.2 屬性文法的分類………………………………………………… 158
5.3 中間代碼及其分類……………………………………………………… 158
5.3.1 後綴式…………………………………………………………… 159
5.3.2 圖表示…………………………………………………………… 159
5.3.3 三地址代碼……………………………………………………… 163
5.4 典型語句的分析與翻譯………………………………………………… 168
5.4.1 過程中的說明語句……………………………………………… 168
5.4.2 賦值語句………………………………………………………… 170
5.4.3 布爾表達式翻譯方法…………………………………………… 177
5.4.4 控制語句的翻譯………………………………………………… 187
5.4.5 過程語句的翻譯………………………………………………… 192
5.5 小 結…………………………………………………………………… 195
習題5…………………………………………………………………………… 195
第6章 運行環境與符號表………………………………………………………… 197
6.1 運行環境………………………………………………………………… 197
6.1.1 存儲分配的方法………………………………………………… 198
6.1.2 靜態存儲分配…………………………………………………… 198
6.1.3 棧(stack)式動態存儲分配……………………………………… 198
6.1.4 堆(heap)式動態存儲分配……………………………………… 204
6.2 符號表…………………………………………………………………… 205
6.2.1 符號表的組織與內容…………………………………………… 206
6.2.2 符號表的查填方法……………………………………………… 208
6.3 小 結…………………………………………………………………… 212
習題6…………………………………………………………………………… 213
第7章 編譯最佳化…………………………………………………………………… 214
7.1 最佳化的基本概念………………………………………………………… 214
7.2 局部最佳化………………………………………………………………… 222
7.3 循環最佳化………………………………………………………………… 229
7.4 小 結…………………………………………………………………… 237
習題7…………………………………………………………………………… 238
第8章 目標代碼的生成與算法…………………………………………………… 239
8.1 基本問題………………………………………………………………… 239
8.1.1 代碼生成器的輸入……………………………………………… 239
8.1.2 目標程式………………………………………………………… 240
8.1.3 指令選擇………………………………………………………… 240
8.1.4 暫存器分配……………………………………………………… 241
8.1.5 計算順序選擇…………………………………………………… 242
8.2 目標計算機模型………………………………………………………… 242
8.3 一個簡單的代碼生成器………………………………………………… 243
8.3.1 待用信息和活躍信息…………………………………………… 244
8.3.2 暫存器描述和地址描述………………………………………… 249
8.3.3 目標代碼生成算法……………………………………………… 249
8.3.4 代碼生成算法…………………………………………………… 252
8.4 暫存器分配……………………………………………………………… 255
8.5 小 結…………………………………………………………………… 256
習題8…………………………………………………………………………… 256
參考文獻……………………………………………………………………………… 257
習題2 …………………………………………………………………………… 35
第3章 詞法分析…………………………………………………………………… 37
3.1 詞法分析器的功能及機內表示…………………………………………… 37
3.1.1 詞法分析器的功能………………………………………………… 37
3.1.2 單詞的機內表示…………………………………………………… 38
3.2 單詞的描述方法…………………………………………………………… 39
3.2.1 正規文法…………………………………………………………… 39
3.2.2 正規表達式………………………………………………………… 40
3.3 詞法分析器的設計………………………………………………………… 42
3.3.1 設計詞法分析器需要考慮的主要問題…………………………… 42
3.3.2 符號表……………………………………………………………… 44
3.3.3 錯誤處理…………………………………………………………… 45
3.3.4 詞法分析器的設計工具…………………………………………… 46
3.3.5 狀態轉換圖的實現………………………………………………… 49
3.4 有限自動機簡介…………………………………………………………… 50
3.4.1 確定有限自動機…………………………………………………… 52
3.4.2 非確定有限自動機………………………………………………… 54
3.4.3 正規式、正規文法和有限自動機之間的關係…………………… 54
3.4.4 由正規式構造NFA、NFA 確定化為DFA、DFA 化簡………… 62
3.4.5 確定的有限自動機化簡…………………………………………… 70
3.5 詞法分析程式的自動產生………………………………………………… 72
3.5.1 語言LEX的一般描述…………………………………………… 73
3.5.2 LEX 的實現……………………………………………………… 75
3.6 (C語言小子集)詞法分析程式設計……………………………………… 78
3.7 正規(則)表達式的套用…………………………………………………… 80
3.8 小 結……………………………………………………………………… 81
習題3 …………………………………………………………………………… 81
第4章 語法分析…………………………………………………………………… 84
4.1 語法分析程式的功能……………………………………………………… 84
4.2 語法成分的表示…………………………………………………………… 84
4.3 語法分析———自上而下分析……………………………………………… 85
4.3.1 自上而下分析的基本問題………………………………………… 86
4.3.2 遞歸下降分析……………………………………………………… 96
4.3.3 LL(1)分析法……………………………………………………… 99
4.4 語法分析———自下而上分析…………………………………………… 106
4.4.1 自下而上分析的基本問題……………………………………… 106
4.4.2 規範歸約簡述…………………………………………………… 109
4.4.3 符號棧的使用與語法樹的表示………………………………… 112
4.4.4 算符優先分析…………………………………………………… 113
4.4.5 LR分析法……………………………………………………… 126
4.5 語法分析器的自動產生工具YACC …………………………………… 145
4.6 小 結…………………………………………………………………… 149
習題4…………………………………………………………………………… 150
第5章 語義分析與中間代碼的生成……………………………………………… 153
5.1 語義分析的功能………………………………………………………… 153
5.2 屬性文法………………………………………………………………… 154
5.2.1 屬性的類型……………………………………………………… 154
5.2.2 屬性文法的分類………………………………………………… 158
5.3 中間代碼及其分類……………………………………………………… 158
5.3.1 後綴式…………………………………………………………… 159
5.3.2 圖表示…………………………………………………………… 159
5.3.3 三地址代碼……………………………………………………… 163
5.4 典型語句的分析與翻譯………………………………………………… 168
5.4.1 過程中的說明語句……………………………………………… 168
5.4.2 賦值語句………………………………………………………… 170
5.4.3 布爾表達式翻譯方法…………………………………………… 177
5.4.4 控制語句的翻譯………………………………………………… 187
5.4.5 過程語句的翻譯………………………………………………… 192
5.5 小 結…………………………………………………………………… 195
習題5…………………………………………………………………………… 195
第6章 運行環境與符號表………………………………………………………… 197
6.1 運行環境………………………………………………………………… 197
6.1.1 存儲分配的方法………………………………………………… 198
6.1.2 靜態存儲分配…………………………………………………… 198
6.1.3 棧(stack)式動態存儲分配……………………………………… 198
6.1.4 堆(heap)式動態存儲分配……………………………………… 204
6.2 符號表…………………………………………………………………… 205
6.2.1 符號表的組織與內容…………………………………………… 206
6.2.2 符號表的查填方法……………………………………………… 208
6.3 小 結…………………………………………………………………… 212
習題6…………………………………………………………………………… 213
第7章 編譯最佳化…………………………………………………………………… 214
7.1 最佳化的基本概念………………………………………………………… 214
7.2 局部最佳化………………………………………………………………… 222
7.3 循環最佳化………………………………………………………………… 229
7.4 小 結…………………………………………………………………… 237
習題7…………………………………………………………………………… 238
第8章 目標代碼的生成與算法…………………………………………………… 239
8.1 基本問題………………………………………………………………… 239
8.1.1 代碼生成器的輸入……………………………………………… 239
8.1.2 目標程式………………………………………………………… 240
8.1.3 指令選擇………………………………………………………… 240
8.1.4 暫存器分配……………………………………………………… 241
8.1.5 計算順序選擇…………………………………………………… 242
8.2 目標計算機模型………………………………………………………… 242
8.3 一個簡單的代碼生成器………………………………………………… 243
8.3.1 待用信息和活躍信息…………………………………………… 244
8.3.2 暫存器描述和地址描述………………………………………… 249
8.3.3 目標代碼生成算法……………………………………………… 249
8.3.4 代碼生成算法…………………………………………………… 252
8.4 暫存器分配……………………………………………………………… 255
8.5 小 結…………………………………………………………………… 256
習題8…………………………………………………………………………… 256
參考文獻……………………………………………………………………………… 257

相關詞條

熱門詞條

聯絡我們