-
>
闖進數學世界――探秘歷史名題
-
>
中醫基礎理論
-
>
當代中國政府與政治(新編21世紀公共管理系列教材)
-
>
高校軍事課教程
-
>
思想道德與法治(2021年版)
-
>
毛澤東思想和中國特色社會主義理論體系概論(2021年版)
-
>
中醫內科學·全國中醫藥行業高等教育“十四五”規劃教材
編譯原理(第3版) 版權信息
- ISBN:9787302381419
- 條形碼:9787302381419 ; 978-7-302-38141-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
編譯原理(第3版) 本書特色
本套教材已伴隨著計算機科學與技術的發展茁壯成長了三十余年,獲得了中華人民共和國教育部科技進步獎、普通高等學校優秀教材全國特等獎、全國暢銷書金獎等三十多項部級以上獎勵,被近千所高校選作教材,教學效果非常好。本套教材經過多次修訂改版和增加新品種、新內容、新技術,基本涵蓋了本科生和碩士研究生的主要課程。本套教材的作者全部是清華大學計算機系的教師,教材的內容、語言特點、課時安排體現了他們治學嚴謹的特點,概念表述嚴謹,邏輯推理嚴密,語言精練。同時,本套教材體系完整,結構嚴謹,理論結合實際,注重素質培養。 《編譯原理(第3版)》特色 在保持前兩個版本風格的基礎上,重組了語法制導的方法,語義分析,中間代碼生成,運行時存儲組織,代碼優化和目標代碼生成等相關內容,力求在各主要知識點之間達到較合理的均衡。 包含兩個小型編譯程序的設計實例,既可以作為學生了解編譯程序的構造原理和實現技術的平臺,也可以作為課程設計的備選素材。 通過程序實例,對業界廣泛使用的開源編譯器GCC及其相關工具鏈的作用和基本用法進行簡介,為可能從事相關領域工作的學生提供必要的基礎知識儲備。
編譯原理(第3版) 內容簡介
《編譯原理(第3版)》介紹程序設計語言編譯程序構造的一般原理、基本設計方法和主要實現技術,主要內容包括文法、自動機和語言的基礎知識,詞法分析,語法分析,語法制導的語義計算,語義分析,中間代碼生成,運行時存儲組織,代碼優化和目標代碼生成。 除了基本設計原理外,書中還包含兩個小型編譯程序的設計實例,可選作課程設計的素材。一個是PL/O語言編譯程序,其設計和實現框架貫穿于該書相關章節中;另一個是簡單面向對象語言Decaf的編譯程序。該書*后還介紹了業界廣泛使用的開源編譯器GCC及和它緊密相關的Binutils工具鏈,通過一系列程序實例說明這些工具的作用和基本用法。 《編譯原理(第3版)》可作為高等院校計算機科學與技術相關專業的本科生教材,也可作為相關教師、研究生或工程技術人員的參考書。
編譯原理(第3版) 目錄
第1章引論1
1.1什么是編譯程序1
1.2編譯過程和編譯程序的結構2
1.2.1編譯過程概述2
1.2.2編譯程序的結構5
1.2.3編譯階段的組合6
1.3解釋程序和一些軟件工具7
1.3.1解釋程序7
1.3.2處理源程序的軟件工具8
1.4PL/0語言編譯系統10
1.4.1PL/0語言編譯系統構成11
1.4.2PL/0語言11
1.4.3類Pcode語言14
1.4.4PL/0編譯程序15
1.4.5PL/0語言編譯系統的驅動代碼16
練習18
第2章文法和語言19
2.1文法的直觀概念19
2.2符號和符號串20
2.3文法和語言的形式定義21
2.4文法的類型25
2.5上下文無關文法及其語法樹26
2.6句型的分析29
2.6.1自上而下的分析方法30
2.6.2自下而上的分析方法30
2.6.3句型分析的有關問題31
2.7有關文法實際應用的一些說明32
2.7.1有關文法的實用限制32
2.7.2上下文無關文法中的ε規則33
練習33
第3章詞法分析37
3.1詞法分析程序的設計37
3.1.1詞法分析程序和語法分析程序的接口方式37
3.1.2詞法分析程序的輸出37
3.1.3將詞法分析工作分離的考慮38
3.1.4詞法分析程序中如何識別單詞39
3.2PL/0編譯程序中詞法分析程序的設計和實現39
3.3單詞的形式化描述工具44
3.3.1正規文法44
3.3.2正規式45
3.3.3正規文法和正規式的等價性46
3.4有窮自動機47
3.4.1確定的有窮自動機(DFA)47
3.4.2不確定的有窮自動機(NFA)49
3.4.3NFA轉換為等價的DFA50
3.4.4確定有窮自動機的化簡52
3.5正規式和有窮自動機的等價性54
3.6正規文法和有窮自動機的等價性57
3.7詞法分析程序的自動構造工具58
3.7.1lex描述文件中使用的正規表達式59
3.7.2lex描述文件的格式60
3.7.3lex的使用63
3.7.4與yacc的接口約定63
練習64
第4章自頂向下語法分析方法68
4.1確定的自頂向下分析思想68
4.2LL(1)文法的判別72
4.3某些非LL(1)文法到LL(1)文法的等價變換77
4.3.1提取左公共因子77
4.3.2消除左遞歸80
4.4不確定的自頂向下分析思想84
4.5LL(1)分析的實現86
4.5.1遞歸下降LL(1)分析程序86
4.5.2表驅動LL(1)分析程序92
4.6LL(1)分析中的出錯處理95
4.6.1應急恢復95
4.6.2短語層恢復96
4.6.3PL/0語法分析程序的錯誤處理98
練習99
第5章自底向上優先分析103
5.1自底向上優先分析概述104
5.2簡單優先分析法104
5.2.1優先關系定義105
5.2.2簡單優先文法的定義106
5.2.3簡單優先分析法的操作步驟106
5.3算符優先分析法107
5.3.1直觀算符優先分析法107
5.3.2算符優先文法的定義108
5.3.3算符優先關系表的構造110
5.3.4算符優先分析算法115
5.3.5優先函數117
5.3.6算符優先分析法的局限性121
練習121
第6章LR分析123
6.1LR分析概述123
6.2LR(0)分析124
6.2.1可歸前綴和子前綴125
6.2.2識別活前綴的有限自動機127
6.2.3活前綴及可歸前綴的一般計算方法128
6.2.4LR(0)項目集規范族的構造130
6.3SLR(1)分析137
6.4LR(1)分析144
6.4.1LR(1)項目集族的構造145
6.4.2LR(1)分析表的構造146
6.5LALR(1)分析148
6.6二義性文法在LR分析中的應用153
練習156
第7章語法制導的語義計算160
7.1基于屬性文法的語義計算160
7.1.1屬性文法160
7.1.2遍歷分析樹進行語義計算164
7.1.3S屬性文法和L屬性文法166
7.1.4基于S屬性文法的語義計算166
7.1.5基于L屬性文法的語義計算168
7.2基于翻譯模式的語義計算172
7.2.1翻譯模式172
7.2.2基于S翻譯模式的語義計算173
7.2.3基于L翻譯模式的自頂向下語義計算174
7.2.4基于L翻譯模式的自底向上語義計算178
7.3分析和翻譯程序的自動生成工具yacc183
7.3.1yacc描述文件184
7.3.2使用yacc的一個簡單例子187
練習189
第8章靜態語義分析和中間代碼生成195
8.1符號表195
8.1.1符號表的作用195
8.1.2符號的常見屬性196
8.1.3符號表的實現197
8.1.4符號表體現作用域與可見性197
8.1.5實例: PL/0編譯程序中符號表的設計與實現199
8.2靜態語義分析203
8.2.1靜態語義分析的主要任務203
8.2.2類型檢查204
8.3中間代碼生成208
8.3.1常見的中間表示形式208
8.3.2生成抽象語法樹210
8.3.3生成三地址碼211
8.4多遍的方法220
練習223
第9章運行時存儲組織229
9.1運行時存儲組織概述229
9.1.1運行時存儲組織的作用與任務229
9.1.2程序運行時存儲空間的布局230
9.1.3存儲分配策略231
9.2活動記錄234
9.2.1過程活動記錄234
9.2.2嵌套過程定義中非局部量的訪問236
9.2.3嵌套程序塊的非局部量訪問239
9.2.4動態作用域規則和靜態作用域規則240
9.3過程調用241
9.4PL/0編譯程序的運行時存儲組織243
9.4.1PL/0程序運行棧中的過程活動記錄244
9.4.2實現過程調用和返回的類Pcode指令245
9.5面向對象語言存儲分配策略247
9.5.1類和對象的角色247
9.5.2面向對象程序運行時的特征247
9.5.3對象的存儲組織248
9.5.4例程的動態綁定249
9.5.5其他話題251
練習251
第10章代碼優化和目標代碼生成255
10.1基本塊、流圖和循環255
10.1.1基本塊255
10.1.2流圖256
10.1.3循環257
10.2數據流分析基礎258
10.2.1數據流方程的概念259
10.2.2到達定值數據流分析259
10.2.3活躍變量數據流分析262
10.2.4幾種重要的變量使用數據流信息263
10.3代碼優化技術268
10.3.1窺孔優化270
10.3.2局部優化271
10.3.3循環優化275
10.3.4全局優化278
10.4目標代碼生成技術279
10.4.1目標代碼生成的主要環節280
10.4.2一個簡單的代碼生成過程282
10.4.3高效使用寄存器285
10.4.4圖著色寄存器分配288
10.4.5PL/0編譯器的目標代碼生成程序289
練習292
第11章課程設計296
11.1基于PL/0編譯器的課程設計296
11.2基于Decaf編譯器的課程設計297
11.2.1Decaf編譯器實驗的總體結構298
11.2.2詞法和語法分析(階段一)300
11.2.3語義分析(階段二)303
11.2.4中間代碼生成(階段三)309
11.2.5代碼優化(階段四)317
11.2.6目標代碼生成(階段五)320
11.2.7基于Decaf編譯器的課程設計333
11.3軟件包相關信息說明335
第12章編譯器和相關工具實例——GCC/Binutils336
12.1開源編譯器GCC336
12.1.1GCC介紹337
12.1.2GCC總體結構338
12.1.3GCC編譯流程339
12.1.4GCC代碼組織341
12.1.5小結341
12.2開源工具Binutils341
12.2.1目標文件341
12.2.2匯編器和鏈接器342
12.2.3其他工具343
12.2.4小結343
12.3編譯器和工具使用實例343
12.3.1編譯特定版本的編譯器343
12.3.2查看目標文件347
12.3.3程序代碼優化349
12.3.4小結353
練習353
附錄APL/0編譯程序文本354
參考文獻398
編譯原理(第3版) 作者簡介
本書介紹程序設計語言編譯程序構造的一般原理、基本設計方法和主要實現技術,主要內容包括文法、自動機和語言的基礎知識,詞法分析,語法分析,語法制導的語義計算,語義分析,中間代碼生成,運行時存儲組織,代碼優化和目標代碼生成。 除了基本設計原理外,書中還包含兩個小型編譯程序的設計實例,可選作課程設計的素材。一個是PL/0語言編譯程序,其設計和實現框架貫穿于本書相關章節中;另一個是簡單面向對象語言Decaf的編譯程序。本書最后還介紹了業界廣泛使用的開源編譯器GCC及和它緊密相關的Binutils工具鏈,通過一系列程序實例說明這些工具的作用和基本用法。 本書可作為高等院校計算機科學與技術相關專業的本科生教材,也可作為相關教師、研究生或工程技術人員的參考書。
- >
山海經
- >
朝聞道
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
伯納黛特,你要去哪(2021新版)
- >
伊索寓言-世界文學名著典藏-全譯本
- >
莉莉和章魚
- >
龍榆生:詞曲概論/大家小書