內容簡介
《編譯原理與技術(第2版)學習指導與習題解析》是與《編譯原理與技術(第2版)》一書配套的學習指導教材,對應《編譯原理與技術(第2版)》的主要章節,給出相應的知識要點總結、習題解答思路分析及參考答案,結合每一章介紹的原理和技術,給出相應的算法設計或上機實驗題目、解決方案。
圖書目錄
第1章編譯概述/1
1.1知識要點/1
1.2習題解析及參考答案/1第2章形式語言與自動機基礎/5
2.1知識要點/5
2.2習題解析及參考答案/5第3章詞法分析/36
3.1知識要點/36
3.2習題解析及參考答案/36第4章語法分析/56
4.1知識要點/56
4.2習題解析及參考答案/56第5章語法制導翻譯技術/90
5.1知識要點/90
5.2習題解析及參考答案/90第6章語義分析/132
6.1知識要點/132
6.2習題解析及參考答案/132第7章運行環境/156
7.1知識要點/156
7.2習題解析及參考答案/156第8章中間代碼生成/174
8.1知識要點/1748.2習題解析及參考答案/174第9章目標代碼生成/194
9.1知識要點/194
9.2習題解析及參考答案/194第10章代碼最佳化/212
10.1知識要點/212
10.2習題解析及參考答案/212第11章模擬試卷/226
11.1模擬試卷1及參考答案/226
11.1.1模擬試卷1/226
11.1.2模擬試卷1參考答案/229
11.2模擬試卷2及參考答案/236
11.2.1模擬試卷2/236
11.2.2模擬試卷2參考答案/238參考文獻/2451.1翻譯和解釋/1
1.1.1程式設計語言/1
1.1.2翻譯程式/2
1.2編譯的階段和任務/4
1.2.1分析階段/4
1.2.2綜合階段/7
1.2.3符號表管理/10
1.2.4錯誤處理/10
1.3和編譯有關的其他概念/11
1.3.1編譯的前端和後端/11
1.3.2“遍”的概念/11
1.4編譯程式的夥伴工具/13
1.4.1預處理器/14
1.4.2彙編程式/14
1.4.3連線裝配程式/16
1.5編譯原理的套用/16
習題1/18第2章形式語言與自動機基礎/19
2.1語言和文法/19
2.1.1字母表和符號串/19
2.1.2語言/20
2.1.3文法及其形式定義/21
2.1.4推導和短語/23
2.1.5分析樹及二義性/25
2.1.6文法變換/27
2.2有限自動機/31
2.2.1確定的有限自動機/32
2.2.2非確定的有限自動機/342.2.3具有ε轉移的非確定的有限自動機/36
2.2.4DFA的化簡/40
2.3正規文法與有限自動機的等價性/42
2.4正規表達式與有限自動機的等價性/45
2.5正規表達式與正規文法的等價性/48
2.5.1正規定義式/48
2.5.2表示的縮寫/49
2.5.3正規表達式轉換為等價的正規文法/50
習題2/51第3章詞法分析/53
3.1詞法分析程式與語法分析程式的關係/53
3.2詞法分析程式的輸入與輸出/54
3.2.1輸入緩衝區/54
3.2.2詞法分析程式的輸出/56
3.3記號的描述和識別/57
3.3.1詞法與正規文法/58
3.3.2記號的文法/58
3.3.3狀態轉換圖與記號的識別/61
3.4詞法分析程式的設計與實現/62
3.4.1文法及狀態轉換圖/63
3.4.2詞法分析程式的構造/65
3.4.3詞法分析程式的實現/65
3.5LEX簡介/71
3.5.1LEX源程式的結構/71
3.5.2LEX源程式舉例/74
習題3/76
程式設計1/77第4章語法分析/78
4.1語法分析簡介/78
4.1.1語法分析程式的地位/78
4.1.2常用的語法分析方法/78
4.1.3語法錯誤的處理/79
4.2自頂向下分析方法/80
4.2.1遞歸下降分析/81
4.2.2遞歸調用預測分析/82
4.2.3非遞歸預測分析/88
4.3自底向上分析方法/95
4.3.1規範歸約/97
4.3.2“移進歸約”方法的實現/98
4.4LR分析方法/100
4.4.1LR分析程式的模型及工作過程/100
4.4.2SLR(1)分析表的構造/104
4.4.3LR(1)分析表的構造/112
4.4.4LALR(1)分析表的構造/119
4.4.5LR分析方法對二義文法的套用/124
4.4.6LR分析的錯誤處理與恢復/129
4.5軟體工具YACC/131
4.5.1YACC源程式/132
4.5.2YACC對二義文法的處理/134
4.5.3用LEX建立YACC的詞法分析程式/136
習題4/137
程式設計2/141第5章語法制導翻譯技術/142
5.1語法制導定義及翻譯方案/143
5.1.1語法制導定義/143
5.1.2依賴圖/146
習題7/255第8章中間代碼生成/259
8.1中間代碼形式/259
8.1.1圖形表示/259
8.1.2三地址代碼/260
8.2賦值語句的翻譯/265
8.2.1僅涉及簡單變數的賦值語句的
翻譯/265
8.2.2涉及數組元素的賦值語句/268
8.2.3記錄結構中域的訪問/273
8.3布爾表達式的翻譯/274
8.3.1翻譯布爾表達式的方法/274
8.3.2數值表示法/275
8.3.3控制流表示法及回填技術/276
8.4控制語句的翻譯/282
8.5goto語句的翻譯/287
8.6CASE語句的翻譯/289
8.7過程調用語句的翻譯/292
習題8/294第9章目標代碼生成/297
9.1目標代碼生成概述/297
9.1.1代碼生成程式的位置/297
9.1.2代碼生成程式設計的相關問題/298
9.2基本塊和流圖/300
9.3下次引用信息/302
9.4一個簡單的代碼生成程式/305
9.4.1目標機器描述/305
9.4.2代碼生成算法/307
9.4.3其他常用語句的代碼生成/312
習題9/315第10章代碼最佳化/317
10.1代碼最佳化概述/317
10.1.1代碼最佳化程式的功能和位置/317
10.1.2代碼最佳化的主要種類/317
10.2基本塊最佳化/318
10.2.1常數合併及常數傳播/318
10.2.2刪除公共表達式/320
10.2.3複製傳播/321
10.2.4削弱計算強度/321
10.2.5改變計算次序/321
10.3dag在基本塊最佳化中的套用/322
10.3.1基本塊的dag表示/322
10.3.2基本塊的dag構造算法/323
10.3.3dag的套用/327
10.3.4dag構造算法的進一步討論/330
10.4循環最佳化/333
10.4.1循環展開/333
10.4.2代碼外提/334
10.4.3削弱計算強度/334
10.4.4刪除歸納變數/335
10.5窺孔最佳化/337
10.5.1刪除冗餘的傳送指令/337
10.5.2刪除死代碼/337
10.5.3控制流最佳化/338
10.5.4削弱計算強度及代數化簡/338
習題10/339第11章面向對象的編譯方法/341
11.1面向對象語言的基本概念/341
11.1.1類和對象/341
11.1.2繼承/343
11.1.3信息封裝/346
11.1.4多態性/347
11.2方法的編譯/350
11.2.1靜態方法/350
11.2.2動態方法/351
11.3繼承的編譯/354
11.3.1單一繼承的編譯/354
11.3.2多繼承的編譯/355
11.4程式運行環境/358
習題11/359第12章編譯程式構造實踐/360
12.1編譯程式的表示及實現方法/360
12.1.1表示方法/360
12.1.2實現語言/360
12.1.3自展法/361
12.1.4移植法/362
12.2PL/0語言及其編譯程式介紹/364
12.2.1PL/0語言/365
12.2.2PL/0編譯程式的結構/368
12.2.3PL/0編譯程式的詞法分析/369
12.2.4PL/0編譯程式的語法分析/371
12.2.5PL/0編譯程式的出錯處理/373
12.2.6PL/0編譯程式的執行環境及
代碼生成/375
12.2.7PL/0程式編譯和運行示例/379
12.3GCC編譯程式/381
12.3.1GCC簡介/382
12.3.2GCC編譯程式的結構與處理
流程/383
12.3.3GCC的分析程式/384
12.3.4GCC的中間語言及中間代碼
生成/385
12.3.5GCC的代碼最佳化/389
12.3.6GCC的代碼生成/391
12.4編譯實踐/392
12.4.1PascalS語言說明/392
12.4.2課程設計要求及說明/398
12.4.3編譯程式的測試/400附錄PL/0編譯程式源程式/402參考文獻/416