圖書信息
出版社: 清華大學出版社; 第1版 (2009年4月1日)
外文書名: Elements Of Compiler Design
叢書名: 世界著名計算機教材精選
平裝: 277頁
正文語種: 簡體中文
開本: 16
ISBN: 9787302193340
條形碼: 9787302193340
尺寸: 25.6 x 18.4 x 1.4 cm
重量: 762 g
作者簡介
作者:(美國)梅杜納 (Alexander Meduna) 譯者:楊萍 王生原
Alexander Meduna,PhD,布爾諾理工大學計算機科學系教授,於1988年在那裡獲得博士學位。從1988至1997年,他在美國密蘇里哥倫比亞大學講授計算機科學。從2000年起,他在布爾諾理工大學任教,更加專注於講授計算機科學和數學。除了這兩所大學,他還在美洲、歐洲和日本的幾所大學短期講授計算機科學。他的課程主要集中於編譯器的編寫。他所教授的內容也涵蓋了多種主題,包括自動機、離散數學、形式語言、作業系統、程式設計語言原理以及計算理論。
內容簡介
《編譯器設計基礎》是編譯器編寫方面的入門教材,適用於一個學期的高年級本科課程。《編譯器設計基礎》堅持在這一主題的理論和實踐方法之間維持一種平衡。從理論角度來看,《編譯器設計基礎》介紹了編譯及其核心階段的基本模型。基於這些模型,它講解了編譯器中用到的概念、方法和技術。《編譯器設計基礎》還簡述了編譯以及相關話題的數學基礎,這些話題包括形式語言理論、自動機和變換機。同時,從實踐的視角來看,《編譯器設計基礎》描述了編譯器技術是如何實現的。一個案例學習貫穿全書,《編譯器設計基礎》設計一種新的類PASCAL程式設計語言,並構造其編譯器;在討論編譯器各種方法的同時,這個案例學習用作其實現的實例說明。此外,《編譯器設計基礎》提供了許多詳細的例子和電腦程式,以強調編譯算法的實際套用。《編譯器設計基礎》中也涵蓋了核心軟體工具。學完《編譯器設計基礎》之後,學生應該能夠掌握編譯過程,編寫簡單的真實編譯器,並可以繼續學習關於該主題的更深入的書籍。
目錄
第1章 導引/1
1.1 數學基礎/1
1.1.1 集合與序列/1
1.1.2 語言/2
1.1.3 關係與翻譯/3
1.1.4 圖/4
1.1.5 證明/6
1.2 編譯/8
1.2.1 編譯階段/8
1.2.2 編譯器構造/12
1.3 重寫系統/13
1.3.1 語言模型/14
本書要點/15
習題/15
部分習題解答/17
第2章 詞法分析/19
2.1 模型/19
2.1.1 正規表達式/19
2.1.2 有窮自動機/20
2.1.3 有窮自動機的表示/22
2.1.4 簡化/23
2.1.5 有窮變換機/28
2.2 方法/29
2.2.1 單詞與單詞記號/29
2.2.2 詞法分析器/33
2.2.3 額外的任務/39
2.3 理論/39
2.3.1 正規表達式到有窮自動機的變換/39
2.3.2 有窮自動機的化簡/44
2.3.3 非正規詞法構造/51
2.3.4 判定問題/60
習題/62
部分習題解答/67
第3章 語法分析/69
3.1 模型/69
3.1.1 文法/69
3.1.2 下推自動機/80
3.2 方法/83
3.2.1 自上而下分析/83
3.2.2 遞歸下降分析程式/86
3.2.3 消除左遞歸/89
3.2.4 自下而上分析/91
3.3 理論/96
3.3.1 分析模型的能力/97
3.3.2 驗證文法形式的語法描述/97
3.3.3 文法的簡化/99
3.3.4 文法的範式和基於它們的分析/108
3.3.5 文法不能描述的語法/114
3.3.6 判定問題/120
習題/122
部分習題解答/127
第4章 確定的自上而下分析/130
4.1 預測集合和LL文法/130
4.2 預測分析/136
4.2.1 遞歸下降預測分析/136
4.2.2 表驅動的預測分析/139
4.2.3 處理錯誤/144
習題/145
部分習題解答/149
第5章 確定的自下而上分析/151
5.1 優先分析/151
5.1.1 算符優先分析算法/151
5.1.2 算符優先表的構造/154
5.1.3 處理錯誤/155
5.1.4 擴展/158
5.1.5 限制/160
5.2 LR語法分析/160
5.2.1 LR分析算法/160
5.2.2 構造LR表/163
5.2.3 LR分析中的錯誤處理/170
習題/172
部分習題解答/175
第6章 語法制導翻譯和中間代碼生成/178
6.1 自下而上語法制導翻譯和中間代碼生成/179
6.1.1 語法樹/180
6.1.2 三地址碼/185
6.1.3 波蘭式/188
6.2 自上而下的語法制導翻譯/189
6.3 語義分析/191
6.4 符號表/192
6.4.1 組織/192
6.4.2 存儲標識符名字/193
6.4.3 塊結構的符號表/194
6.5 語法制導翻譯的軟體工具/195
6.5.1 Lex/196
6.5.2 Yacc/197
習題/201
部分習題解答/203
第7章 最佳化和目標代碼生成/205
7.1 跟蹤變數的使用/205
7.1.1 基本塊/206
7.1.2 基本塊內變數的使用/208
7.1.3 基本塊之間變數的使用/211
7.2 中間代碼最佳化/214
7.3 目標代碼的最佳化和生成/218
習題/222
部分習題解答/225
結束語/226
文獻紀要/226
研究生層次的話題/227
當前趨勢/230
附錄A實現/233
A.1 概念/233
類接口/234
A.2 代碼/236
參考文獻/256