編譯技術與應用(微課視頻版·題庫版)
楊金民 陳果 黎文偉
買這商品的人也買了...
-
$564CPU 自製入門 -
AI 編譯器開發指南$714$678 -
不只是 CUDA,通用 GPU 程式模型及架構原理$780$616 -
C++ 軟體設計|高品質軟體的設計原則和模式 (C++ Software Design: Design Principles and Patterns for High-Quality Software)$780$616 -
設計模式之美$580$458
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$576 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書以全新的視角透視編譯技術,圍繞編譯中的詞法分析、語法分析、語法制導的翻譯、語義分析和中間代碼生成、運行環境和目標代碼生成、代碼優化這6個核心問題展開,共分7章。本書重點針對編譯器構造方法學展開分析和論述,以揭示編譯技術的內涵,展示其優美性和藝術性。本書也探索技術演進背後的動因,追蹤業界**技術及其發展趨勢,幫助讀者靈活應對IT技術發展與變遷所帶來的挑戰。 本書內容新穎、通俗易懂,特別適合作為高等院校電腦及相關專業的教材,也可以作為工程技術培訓的教材。本書也非常適合科研人員和工程技術人員閱讀,從中感悟編譯技術的內涵,體會其精妙之處。
目錄大綱
目錄
第1章編譯技術概述1
1.1計算模型和機器語言的特性2
1.2高級程序語言及其特性4
1.3編譯方法及過程6
1.3.1源程序的構成特性6
1.3.2編譯過程7
1.3.3編譯器的結構特性12
1.4編譯器構造方法學13
1.5編譯前對源程序文本的預處理15
1.6程序調試17
1.7編譯執行和解釋執行18
1.8編譯方式的演進20
1.9虛擬機22
1.10程序語言的發展歷程23
1.11當前主流的編譯器產品24
1.12編譯知識的廣泛應用25
1.13本章小結26
知識拓展: 別名的概述26
習題28
第2章詞法分析29
2.1高級程序語言的詞構成特性29
2.2詞法的描述31
2.2.1正則語言和正則運算31
2.2.2C語言詞法的正則描述33
2.2.3詞法分析的實現框架34
2.2.4正則表達式的含義35
2.3基於狀態轉換圖的詞法分析36
2.3.1基於狀態轉換圖的匹配判斷36
2.3.2狀態轉換圖的特徵37
2.3.3基於狀態轉換圖的通用詞法分析器39
2.4正則表達式的狀態轉換圖自動生成方法40
2.4.1正則表達式的NFA原生構造方法41
2.4.2基於NFA的匹配判斷算法44
2.4.3基於NFA的DFA構造方法46
2.4.4正則表達式的最簡NFA構造法49
2.4.5特殊正則表達式的最簡NFA構造54
2.4.6NFA和DFA中狀態屬性值的確定方法56
2.4.7正則表達式之間的包含關系58
2.5正則表達式及其DFA在文本搜索中的應用61
2.6本章小結62
知識拓展: NFA和DFA構造中涉及的數據結構63
習題65
◆編譯技術與應用(微課視頻版·題庫版)目錄◆第3章語法分析67
3.1程序的樹結構特性68
3.2語言的語法描述69
3.3詞串的語法分析樹及其構造策略73
3.4語法描述和詞法描述的比較75
3.5自頂向下和最左推導的語法分析78
3.5.1自頂向下和最左推導的語法分析過程78
3.5.2左遞歸及其消除方法80
3.5.3左公因子及其提取方法83
3.5.4推導中的產生式選擇84
3.5.5FIRST和FOLLOW函數值求解算法87
3.5.6LL(1)文法特性及其語法分析表93
3.5.7二義性文法的可改造性94
3.5.8基於LL(1)語法分析表和符號棧的語法分析器通用代碼95
3.6自底向上的語法分析98
3.6.1自底向上的語法分析及有待解決的關鍵問題99
3.6.2文法的DFA構造方法100
3.6.3基於狀態棧和文法DFA的LR語法分析104
3.6.4基於FOLLOW函數值的沖突解決方法107
3.6.5基於語法分析表的LR語法分析通用代碼108
3.6.6基於FOLLOW精確化的沖突解決方法112
3.7LL語法分析和LR語法分析的對比116
3.8LR文法設計116
3.8.1DFA物理含義的挖掘和應用117
3.8.2盡量減少文法中的非終結符數量119
3.8.3非終結符語義的寬泛化121
3.8.4文法的二義性及其消除方法124
3.8.5LALR(1)型DFA的收益和代價124
3.8.6文法的上下文無關性126
3.9LR語法分析中錯誤的恢復127
3.10本章小結129
知識拓展: 語法分析表構造中涉及的數據結構130
習題132
第4章語法制導的翻譯135
4.1LR分析中的語法制導翻譯136
4.1.1LR分析中的語法制導翻譯簡介136
4.1.2LR分析中語法制導的翻譯實現框架139
4.1.3詞法分析器構造工具的實現142
4.2LL分析中語法制導的翻譯149
4.2.1LL分析中語法制導的翻譯簡介149
4.2.2LL分析中語法制導的翻譯實現框架150
4.3從LR型SDT得出LL型SDT156
4.4LR語法分析中對繼承屬性的處理158
4.5本章小結161
習題162
第5章語義分析與中間代碼生成164
5.1語義分析和中間代碼生成簡介165
5.1.1程序的層級結構165
5.1.2類型的語義分析167
5.1.3變量的語義分析170
5.1.4函數的語義分析173
5.1.5中間語言簡介174
5.1.6中間代碼生成簡介176
5.2類型和變量的語義分析框架179
5.3類型和變量定義的SDT設計180
5.3.1高級程序語言中的指針語義180
5.3.2類型和變量定義的文法設計182
5.3.3類型和變量定義的語義分析及其SDD設計183
5.3.4類型和變量定義的語義分析SDT設計185
5.4變量使用的SDT設計190
5.4.1變量地址的確定方法190
5.4.2描述變量使用的文法192
5.4.3變量使用的語義分析和中間代碼生成SDD設計194
5.4.4變量使用的語義分析和中間代碼生成SDT設計197
5.5運算的語義分析和中間代碼生成201
5.6類型系統205
5.7分支語句的中間代碼生成206
5.7.1分支語句的文法207
5.7.2分支語句的中間代碼生成SDD設計209
5.7.3分支語句的中間代碼生成SDT設計212
5.7.4分支語句中break和continue語句的處理217
5.8函數調用的語義分析和中間代碼生成218
5.9本章小結219
習題220
第6章運行環境和目標代碼生成222
6.1函數調用223
6.1.1局部變量的靜態存儲分配方案224
6.1.2局部變量的動態存儲分配方案225
6.1.3相對尋址方式帶來的好處228
6.1.4形參和數組的動態性229
6.2軟件集成230
6.2.1源代碼級的軟件集成231
6.2.2二進制可執行文件級的軟件集成233
6.2.3跨模塊內存訪問帶來的問題及解決方法235
6.2.4靜態鏈接與動態鏈接237
6.3軟件調試238
6.3.1程序之間的交互238
6.3.2運行環境的構建239
6.3.3調試器與被調程序之間的協同交互241
6.3.4變量值的獲取與關聯243
6.4垃圾自動回收245
6.4.1基於引用記數的垃圾回收方法246
6.4.2基於定期識別和清掃的垃圾回收方法247
6.4.3基於程序分析的垃圾識別和清除249
6.5異常處理250
6.6面向對象中的多態252
6.6.1面向對象編程問題的揭示253
6.6.2基於代理的解耦和封裝實現方案255
6.6.3基於多態的面向對象編程問題解決方案256
6.6.4接口特性259
6.6.5接口獲取259
6.7本章小結260
習題262
第7章代碼優化264
7.1中間代碼的優化265
7.1.1基本塊和流圖265
7.1.2中間代碼優化途徑267
7.2目標代碼優化基礎270
7.2.1電腦特性270
7.2.2目標語言272
7.2.3目標代碼生成與優化275
7.3寄存器分配276
7.3.1活變量標識算法276
7.3.2基於圖著色的寄存器分配278
7.3.3變量溢出280
7.3.4內存數據的加載和刷新281
7.3.5寄存器騰空和變量溢出283
7.3.6同步函數和異步函數284
7.4基於機器其他特性的代碼優化285
7.4.1基於指令流水線處理的代碼優化285
7.4.2基於高速緩存的代碼優化286
7.4.3基於多核處理器的代碼優化287
7.4.4大數據處理和雲計算中的優化288
7.5本章小結289
習題289
參考文獻291



