編譯技術原理及方法(慕課版)
黃海平 蔣凌雲 沙超 徐康
買這商品的人也買了...
-
$534$507 -
$403自製編程語言
-
$356自己動手寫編譯器、鏈接器
-
$594$564 -
$250Vivado 從此開始
-
$650$585 -
$210$200 -
$135編譯原理, 4/e
-
$286Vivado 從此開始 (進階篇)
-
$580$458 -
$620$465 -
$719$683 -
$294$279 -
$560$437 -
$403機器人系統(原書第2版)
-
$774$735 -
$714$678 -
$534$507 -
$780$616 -
$390RISC-V 體系結構編程與實踐
-
$316程序員的制勝技
-
$450$351 -
$534$507 -
$580$458 -
$403$379
相關主題
商品描述
本書旨在介紹編譯程序構造的一般原理和基本方法,內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成等。編譯原理是電腦專業設置的一門重要的專業課程。本書在編譯技術原理與及方法進行了系統的闡釋,並著重實踐訓練內容,有利於提高軟件從業人員的素質和能力。
本書系統性強,概念清晰,內容簡明扼要,前9章配有習題,第10章給出了編譯程序實例分析。
本書可作為高等院校電腦專業本科生的教材,也可供成人教育本科、專升本學生和電腦從業人員參考。
作者簡介
作者黄海平是南京邮电大学计算机学院教授、 博士生导师,江苏省“333工程”中青年学术带头人, 江苏省“六大人才高峰” 高层次人才培养对象, 2005年以来一直从事编译原理的教学工作。
目錄大綱
第1章 引論 1
1.1 程序設計語言的發展歷程 2
1.2 程序設計語言的翻譯機制 4
1.3 編譯程序概述 6
1.3.1 編譯程序的邏輯結構概述 6
1.3.2 編譯程序的分遍 10
1.4 編譯程序的構造方法 11
1.4.1 編寫編譯程序的一般方法 11
1.4.2 編譯程序的開發技術 11
1.5 編譯技術的主要應用 15
1.6 本章小結 15
習題 16
第2章 形式語言的基本知識 17
2.1 字母表和符號串的基本概念 18
2.2 用文法產生法描述語言 19
2.2.1 巴克斯-諾爾範式 20
2.2.2 通過文法產生語言的方式 21
2.3 句型的分析 23
2.4 文法和語言的分類 27
2.5 文法的其他表示法 29
2.6 C--語言的形式定義 31
2.7 應用案例 32
2.8 本章小結 32
習題 32
第3章 詞法分析 35
3.1 詞法分析概述 36
3.1.1 詞法分析的任務 36
3.1.2 單詞的分類與表示 37
3.2 手動編寫詞法分析程序 38
3.2.1 單詞的描述——正規文法與狀態轉換圖 38
3.2.2 C--語言詞法分析程序的設計與實現 40
3.3 自動生成詞法分析程序的原理 42
3.3.1 單詞的描述——正規表達式 43
3.3.2 單詞的識別——有窮自動機 44
3.3.3 正規表達式、正規文法和有窮自動機的等價性 49
3.4 本章小結 56
習題 56
第4章 語法分析 58
4.1 語法分析概述 59
4.2 自頂向下的語法分析 59
4.2.1 消除文法的回溯和左遞歸 59
4.2.2 LL(1)分析法 62
4.3 自底向上的語法分析 68
4.3.1 LR分析器的邏輯結構和分析過程 68
4.3.2 LR(0)分析表的構造 71
4.3.3 SLR(1)分析表的構造 76
4.3.4 LR(1)分析表的構造 79
4.3.5 LALR(1)分析表的構造 81
4.4 語法分析程序的自動生成 83
4.5 應用案例 84
4.6 本章小結 85
習題 85
第5章 語義分析及中間代碼生成 89
5.1 語法制導翻譯概述 90
5.2 中間語言 92
5.2.1 逆波蘭表示 92
5.2.2 三元式 95
5.2.3 樹形表示 96
5.2.4 四元式 97
5.3 自底向上語法制導翻譯 97
5.4 自頂向下語法制導翻譯 119
5.5 屬性文法與屬性翻譯 123
5.6 本章小結 126
習題 127
第6章 符號表 129
6.1 符號表的作用 130
6.2 符號表的組織 130
6.2.1 符號表的形式 130
6.2.2 符號表中的內容 132
6.3 符號表的構造與查找 133
6.3.1 順序查表與造表法 133
6.3.2 折半查表與造表法 134
6.3.3 散列表法(雜湊法) 135
6.4 分程序結構語言的符號表 137
6.5 非分程序結構語言的符號表 138
6.6 本章小結 139
習題 140
第7章 存儲組織與分配 141
7.1 存儲組織概述 142
7.1.1 存儲空間的一般劃分與組織 142
7.1.2 過程活動和活動記錄 143
7.2 靜態存儲分配 144
7.3 動態存儲分配 145
7.3.1 棧式存儲分配 145
7.3.2 堆式存儲分配 148
7.4 本章小結 149
習題 149
第8章 代碼優化 152
8.1 代碼優化概述 153
8.2 局部優化 154
8.3 循環優化 156
8.4 利用DAG進行優化 163
8.5 數據流分析及全局優化概述 167
8.6 本章小結 174
習題 174
第9章 目標代碼生成 178
9.1 目標代碼生成概述 179
9.2 假想的電腦模型 179
9.3 一種簡單代碼生成程序 180
9.4 寄存器分配 185
9.5 由DAG生成目標代碼 188
9.6 窺孔優化 191
9.7 本章小結 192
習題 192
第10章 編譯程序實例分析 194
10.1 C--語言的編譯程序 195
10.2 編譯程序自動生成器簡介 195
10.2.1 Lex 195
10.2.2 YACC 197
10.2.3 Parser Generator 198
10.3 利用Parser Generator生成編譯程序 202
10.3.1 Lex源程序設計 202
10.3.2 YACC源程序設計 203
10.3.3 語義分析 206
10.4 部分核心代碼 207
10.5 軟件測試及其結果分析 213
10.6 本章小結 217