買這商品的人也買了...
-
$414Go 語言程序設計 (Programming in Go: Creating Applications for the 21st Century) -
透視 C語言指標-深度探索記憶體管理核心技術 (Understanding and Using C Pointers)$480$379 -
不敗的數據學:從統計數字中看見真相的 12堂思考訓練,不被造假及濫用的數字唬弄!$380$323 -
現代編譯原理 C語言描述 (修訂版)$534$507 -
$301Python 微服務開發 (Python Microservices Development) -
高品質軟體文件|持續分享技術與知識 (Living Documentation: Continuous Knowledge Sharing by Design)$680$537 -
作業系統, 10/e (授權經銷版)(Silberschatz: Operating System Concepts, 10/e)$910$865 -
$559嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統 -
$764高級算法和數據結構 -
$505編成風格:程式設計與系統建構的藝術 (原書第2版) -
跟 NVIDIA 學深度學習!從基本神經網路到 ......、GPT、BERT...,紮穩機器視覺與大型語言模型 (LLM) 的建模基礎$880$748 -
$658自己動手構建編程語言:如何設計編譯器、解釋器和 DSL -
計算機是如何運作的$654$621 -
新一代 Keras 3.x 重磅回歸:跨 TensorFlow 與 PyTorch 建構 Transformer、CNN、RNN、LSTM 深度學習模型$750$593 -
$407計算機視覺核心技術演算法與開發實戰 -
$662深度學習高手筆記 捲2:經典應用 -
$374ARM Cortex-M4 嵌入式系統原理及應用 — 基於 STM32F407 微控制器的 HAL 庫開發 -
$403工業機器人控制和調節方法 (原書第5版) -
演算法導論, 4/e (Introduction to Algorithms, 4/e)$1,800$1,422 -
領域故事化:協作 x 視覺化 x Agile,輕鬆打造專業水準的 DDD 軟體 (Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software)$650$507 -
機器學習的訓練資料 (Training Data for Machine Learning)$780$616 -
Raspberry Pi 樹莓派:AI × OpenCV × LLM × AIoT 創客聖經$880$695 -
超圖解 Arduino 互動設計入門, 5/e$780$663 -
先整理一下?|個人層面的軟體設計考量 (Tidy First?: A Personal Exercise in Empirical Software Design)$480$379 -
高性能架構之道:分佈式、並發編程、數據庫調優、緩存設計、IO模型、前端優化、高可用, 2/e$534$507
中文年末書展|繁簡參展書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 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
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
相關主題
商品描述
本書是全國電子信息類優秀教材和華中科技大學優秀教學成果,根據高等學校"編譯原理”課程教學基本要求編寫。全書系統介紹了編譯程序的一般構造原理、基本設計方法和主要實現技術。內容包括:文法和語言基本知識、詞法分析程序的設計原理與構造方法、各種語法分析技術、語法制導翻譯技術與中間代碼生成、符號表的組織和管理、代碼優化、運行時存儲空間的組織與管理、目標代碼生成、並行編譯技術基本常識等。 本書系統性強、概念清晰,內容簡明通俗,每章配有本章學習導讀、本章小結、自測練習題和習題。附錄給出了自測練習題與習題參考答案及編譯程序實驗等,本書還免費提供電子課件和實驗源代碼。 本書可作為高等學校電腦專業本科生教材,也可作為成人教育本科和專升本學生的教材,對相關工程技術人員也有參考價值。
目錄大綱
第 1 章 編譯概述 ……………………………………………………………………………… 1
1. 1 翻譯程序與編譯程序 ……………………………………………………………………… 1
1.2 編譯過程和編譯程序的基本結構 ………………………………………………………… 2
1.3 編譯程序的生成方法 ……………………………………………………………………… 5
1. 4 編譯技術在軟件開發中的應用 …………………………………………………………… 6
本章小結 ……………………………………………………………………………………… 7
擴展閱讀 ……………………………………………………………………………………… 7
自測練習題 1 ………………………………………………………………………………… 7
習題 1 …………………………………………………………………………………………8
第 2 章 文法和語言的基本知識 ………………………………………………………………9
2. 1 概述 ……………………………………………………………………………………… 9
2.2 字母表和符號串的基本概念 ……………………………………………………………… 9
2.2.1 字母表和符號串 …………………………………………………………………… 9
2.2.2 符號串的運算 …………………………………………………………………… 10
2.3 文法和語言的形式定義 ………………………………………………………………… 11
2.3.1 形式語言 ………………………………………………………………………… 11
2.3.2 文法的形式定義…………………………………………………………………… 12
2.3.3 語言的形式定義…………………………………………………………………… 15
2.3. 4 規範推導和規範歸約 ……………………………………………………………… 17
2.3.5 遞歸規則與文法的遞歸性 ………………………………………………………… 19
2.4 短語、 直接短語和句柄 ………………………………………………………………… 20
2. 4. 1 短語和直接短語…………………………………………………………………… 20
2.4.2 句柄 ……………………………………………………………………………… 20
2.5 語法樹與文法的二義性 ………………………………………………………………… 21
2.5.1 推導和語法樹 …………………………………………………………………… 21
2.5.2 文法的二義性 …………………………………………………………………… 23
2.5.3 文法二義性的消除 ………………………………………………………………… 24
2.6 文法和語言的分類 ……………………………………………………………………… 25
2.7 有關文法的實用限制和變換 ……………………………………………………………… 27
本章小結 ……………………………………………………………………………………… 28
擴展閱讀 ……………………………………………………………………………………… 29
自測練習題 2 ………………………………………………………………………………… 29
習題 2 …………………………………………………………………………………………32
第 3 章 詞法分析與有窮自動機……………………………………………………………… 34
3.1 詞法分析程序的功能 …………………………………………………………………… 34
3. 2 單詞符號及輸出單詞的形式 ……………………………………………………………… 34
3.2. 1 語言的單詞符號…………………………………………………………………… 35
3. 2.2 詞法分析程序輸出單詞的形式 …………………………………………………… 35
3.3 語言單詞符號的兩種定義方式 …………………………………………………………… 36
3. 3. 1 正規式與正規集…………………………………………………………………… 36
3. 3. 2 正規文法與正規式 ………………………………………………………………… 37
3.4 正規式與有窮自動機 …………………………………………………………………… 40
3.4. 1 確定有窮自動機 (DFA) ………………………………………………………… 40
3. 4.2 非確定有窮自動機 (NFA) ……………………………………………………… 41
3. 4. 3 由正規表達式 R 構造 NFA ………………………………………………………… 42
3. 4. 4 NFA 確定化為 DFA 的方法 ………………………………………………………… 43
3. 4.5 DFA 的化簡 ……………………………………………………………………… 46
3.4. 6 有窮自動機到正規式的轉換 ……………………………………………………… 48
3.5 正規文法與有窮自動機 ………………………………………………………………… 49
3.5.1 右線性正規文法到有窮自動機的轉換方法 ………………………………………… 49
3. 5. 2 左線性正規文法到有窮自動機的轉換方法 ………………………………………… 50
3. 5.3 有窮自動機到正規文法的轉換方法………………………………………………… 50
3.6 詞法分析程序的編寫方法………………………………………………………………… 51
本章小結 ……………………………………………………………………………………… 56
擴展閱讀 ……………………………………………………………………………………… 57
自測練習題 3 ………………………………………………………………………………… 58
習題 3 …………………………………………………………………………………………59
第 4 章 語法分析 ……………………………………………………………………………… 62
4. 1 語法分析程序的功能 …………………………………………………………………… 62
4.2 自上而下分析法 ………………………………………………………………………… 63
4.2. 1 非確定的自上而下分析法的思想 ………………………………………………… 63
4. 2.2 文法的左遞歸性和回溯的消除 …………………………………………………… 64
4. 2.3 某些非 LL(1)文法到 LL(1)文法的改寫 …………………………………………… 67
4.2.4 遞歸下降分析法…………………………………………………………………… 69
4. 2. 5 預測分析法與預測分析表的構造 ………………………………………………… 71
4. 3 自下而上分析法的一般原理 ……………………………………………………………… 73
4.4 算符優先分析法 ………………………………………………………………………… 74
4.4. 1 方法概述 ………………………………………………………………………… 74
4. 4.2 算符優先文法的定義 ……………………………………………………………… 75
4.4.3 算符優先關系表的構造 …………………………………………………………… 76
4.4.4 算符優先分析算法的設計 ………………………………………………………… 77
4.4. 5 優先函數的構造…………………………………………………………………… 80
4.4.6 算符優先分析法的局限性 ………………………………………………………… 82
4.5 LR 分析法 ……………………………………………………………………………… 82
4.5.1 LR 分析器的工作原理和過程 ……………………………………………………… 82
4. 5.2 LR(0)分析法 …………………………………………………………………… 85
4. 5. 3 SLR(1)分析法 …………………………………………………………………… 89
4.5.4 LR(1)分析法 …………………………………………………………………… 93
4.5.5 LALR(1)分析法 ………………………………………………………………… 96
4.5.6 LR 分析法對二義性文法的應用 …………………………………………………… 99
4. 5.7 LR 語法分析中的錯誤恢復技術…………………………………………………… 100
4.6 語法分析程序的編寫方法 ……………………………………………………………… 103
本章小結 …………………………………………………………………………………… 104
擴展閱讀 …………………………………………………………………………………… 105
自測練習題 4 ………………………………………………………………………………… 106
習題 4 ………………………………………………………………………………………108
第 5 章 語法制導翻譯技術和中間代碼生成 …………………………………………………111
5. 1 概述 …………………………………………………………………………………… 111
5.2 屬性文法 ……………………………………………………………………………… 111
5.3 語法制導翻譯概述 ……………………………………………………………………… 114
5.4 中間語言 ……………………………………………………………………………… 115
5.4.1 逆波蘭式 ………………………………………………………………………… 115
5.4.2 三元式和樹形表示 ……………………………………………………………… 116
5.4.3 四元式和三地址代碼 …………………………………………………………… 118
5.5 自下而上語法制導翻譯 ………………………………………………………………… 118
5.5.1 簡單算術表達式和賦值語句的翻譯 ……………………………………………… 118
5.5.2 布爾表達式的翻譯 ……………………………………………………………… 120
5.5.3 控制語句的翻譯 ………………………………………………………………… 126
5.5.4 循環語句的翻譯 ………………………………………………………………… 129
5.5.5 簡單說明語句的翻譯 …………………………………………………………… 130
5.5.6 含數組元素的賦值語句的翻譯 …………………………………………………… 131
5.5.7 過程和函數調用語句的翻譯 ……………………………………………………… 134
5.6 遞歸下降語法制導的翻譯 ……………………………………………………………… 136
本章小結 …………………………………………………………………………………… 137
擴展閱讀 …………………………………………………………………………………… 138
自測練習題 5 ………………………………………………………………………………… 138
習題 5 ………………………………………………………………………………………139
第 6 章 符號表的組織與管理 …………………………………………………………………141
6. 1 符號表的作用…………………………………………………………………………… 141
6.2 符號表的組織…………………………………………………………………………… 143
6.3 符號表的建立和查找 …………………………………………………………………… 146
本章小結 …………………………………………………………………………………… 149
擴展閱讀 …………………………………………………………………………………… 149
自測練習題 6 ………………………………………………………………………………… 149
習題 6 ………………………………………………………………………………………150
第 7 章 代碼優化 ………………………………………………………………………………151
7.1 優化概述 ……………………………………………………………………………… 151
7.2 局部優化 ……………………………………………………………………………… 155
7.2. 1 劃分基本塊的方法 ……………………………………………………………… 155
7.2.2 基本塊的 DAG 表示 ……………………………………………………………… 155
7.2.3 利用 DAG 進行基本塊的優化處理 ………………………………………………… 159
7. 3 循環優化 ……………………………………………………………………………… 160
7.3.1 程序流圖與循環 ………………………………………………………………… 161
7.3.2 循環查找 ………………………………………………………………………… 162
7.3. 3 循環優化 ………………………………………………………………………… 164
7.4 窺孔優化 ……………………………………………………………………………… 168
本章小結 …………………………………………………………………………………… 170
擴展閱讀 …………………………………………………………………………………… 171
自測練習題 7 ………………………………………………………………………………… 171
習題 7 ………………………………………………………………………………………172
第 8 章 運行時的存儲組織與管理…………………………………………………………… 173
8.1 概述 …………………………………………………………………………………… 173
8. 2 靜態存儲分配…………………………………………………………………………… 174
8.3 棧式存儲分配…………………………………………………………………………… 175
8.3.1 簡單棧式存儲分配 ……………………………………………………………… 175
8.3.2 嵌套過程的棧式存儲分配 ………………………………………………………… 176
8.4 堆式存儲分配…………………………………………………………………………… 178
8.5 臨時變量的存儲分配 …………………………………………………………………… 179
本章小結 …………………………………………………………………………………… 179
擴展閱讀 …………………………………………………………………………………… 180
自測練習題 8 ………………………………………………………………………………… 180
習題 8 ………………………………………………………………………………………180
第 9 章 目標代碼生成 …………………………………………………………………………182
9. 1 概述 …………………………………………………………………………………… 182
9. 2 假想的電腦模型 ……………………………………………………………………… 182
9.3 簡單代碼生成器 ………………………………………………………………………… 183
9.3.1 待用信息與活躍信息 …………………………………………………………… 183
9. 3.2 代碼生成算法 …………………………………………………………………… 185
9.3. 3 寄存器的分配 …………………………………………………………………… 186
9.4 代碼生成器的自動生成技術 …………………………………………………………… 186
本章小結 …………………………………………………………………………………… 187
擴展閱讀 …………………………………………………………………………………… 187
自測練習題 9 ………………………………………………………………………………… 187
習題 9 ………………………………………………………………………………………187
第 10 章 並行編譯技術基本常識 ……………………………………………………………189
10. 1 並行編譯技術的引入…………………………………………………………………… 189
10. 2 並行編譯系統的功能和結構 …………………………………………………………… 190
10.2.1 並行編譯系統的功能 …………………………………………………………… 190
10.2.2 並行編譯系統的結構 …………………………………………………………… 190
10. 3 向量語言編譯技術 …………………………………………………………………… 191
10. 3.1 向量語法處理…………………………………………………………………… 191
10.3.2 向量結構優化…………………………………………………………………… 191
10.4 共享存儲器並行機並行編譯技術 ……………………………………………………… 192
10.4. 1 預編譯 ………………………………………………………………………… 192
10.4.2 可再入的目標代碼 ……………………………………………………………… 192
本章小結 …………………………………………………………………………………… 193
習題 10 ………………………………………………………………………………………193
附錄 A 詞法分析程序生成器 Lex ………………………………………………………… 194
A.1 詞法分析程序生成器 Lex 簡介 ………………………………………………………… 194
A.2 Lex 輸入文件的格式 …………………………………………………………………… 195
A.3 正規表達式的 Lex 約定 ………………………………………………………………… 197
A.4 Lex 源程序中的規則部分 ……………………………………………………………… 199
A. 5 Flex 的命令選項………………………………………………………………………… 201
A.6 Lex 程序示例 ……………………………………………………………………………202
附錄 B 語法分析程序生成器 YACC ………………………………………………………203
B. 1 語法分析程序 YACC 簡介 ……………………………………………………………… 203
B.2 YACC 輸入文件的格式 ………………………………………………………………… 203
B.3 YACC 各部分的書寫格式 ……………………………………………………………… 204
B. 3. 1 定義部分………………………………………………………………………… 204
B. 3.2 規則部分………………………………………………………………………… 207
B.3.3 輔助程序部分 …………………………………………………………………… 209
B.4 YACC 的內置名稱和定義機制…………………………………………………………… 209
B.5 Flex 與 Bison 的聯合使用 ………………………………………………………………209
附錄 C 編譯程序實驗 …………………………………………………………………………212
C.1 詞法分析 ……………………………………………………………………………… 212
C.1.1 實驗目的………………………………………………………………………… 212
C.1.2 實驗要求………………………………………………………………………… 212
C.1.3 詞法分析程序的算法思想………………………………………………………… 213
C.1.4 詞法分析程序的 C 語言程序框架 ………………………………………………… 214
C. 2 語法分析 ……………………………………………………………………………… 219
C.2. 1 實驗目的………………………………………………………………………… 219
C.2.2 實驗要求………………………………………………………………………… 219
C.2.3 語法分析程序的算法思想………………………………………………………… 219
C 2.4 語法分析程序的 C 語言程序框架 ………………………………………………… 221
C.3 語義分析 ……………………………………………………………………………… 222
C.3.1 實驗目的………………………………………………………………………… 222
C.3.2 實驗要求………………………………………………………………………… 222
C.3.3 語義分析程序的 C 語言程序框架 ………………………………………………… 223
C.4 算符優先分析法………………………………………………………………………… 225
C.5 實驗實例 ……………………………………………………………………………… 226
C.6 正規式轉換成自動機的圖形表示………………………………………………………… 244
C.6.1 實驗目的………………………………………………………………………… 244
C. 6.2 實驗要求………………………………………………………………………… 244
C.6.3 參考設計思路 …………………………………………………………………… 244
C.6.4 參考算法 …………………………………………………………………………245
附錄 D 自測練習題與習題參考答案 …………………………………………………………248
參考文獻………………………………………………………………………………………… 269
