全書系統(tǒng)介紹了編譯程序的一般構造原理、基本設計方法和主要實現技術。內容包括:文法和語言基本知識、詞法分析程序的設計原理與構造方法、各種語法分析技術、語法制導翻譯技術與中間代碼生成、符號表的組織和管理、代碼優(yōu)化、運行時存儲空間的組織與管理、目標代碼生成、并行編譯技術基本常識等。
劉銘,華中科技大學計算機學院教授,1999年進入華中科技大學任教及科研,2012-2013年美國Syracuse大學訪問學者。主持與某研究院合作項目5項、校教學改革項目1項、其他各類橫向項目10余項。
第1章編譯概述
11翻譯程序與編譯程序
12編譯過程和編譯程序的基本結構
13編譯程序的生成方法
14編譯技術在軟件開發(fā)中的應用
本章小結
擴展閱讀
自測練習題1
習題1
第2章文法和語言的基本知識
21概述
22字母表和符號串的基本概念
221字母表和符號串
222符號串的運算
23文法和語言的形式定義
231形式語言
232文法的形式定義
233語言的形式定義
234規(guī)范推導和規(guī)范歸約
235遞歸規(guī)則與文法的遞歸性
24短語、直接短語和句柄
241短語和直接短語
242句柄
25語法樹與文法的二義性
251推導和語法樹
252文法的二義性
253文法二義性的消除
26文法和語言的分類
27有關文法的實用限制和變換
本章小結
擴展閱讀
自測練習題2
習題2
第3章詞法分析與有窮自動機
31詞法分析程序的功能
32單詞符號及輸出單詞的形式
321語言的單詞符號
322詞法分析程序輸出單詞的形式
33語言單詞符號的兩種定義方式
331正規(guī)式與正規(guī)集
332正規(guī)文法與正規(guī)式
34正規(guī)式與有窮自動機
341確定有窮自動機(DFA)
342非確定有窮自動機(NFA)
343由正規(guī)表達式R構造NFA
344NFA確定化為DFA的方法
345DFA的化簡
346有窮自動機到正規(guī)式的轉換
35正規(guī)文法與有窮自動機
351右線性正規(guī)文法到有窮自動機的轉換方法
352左線性正規(guī)文法到有窮自動機的轉換方法
353有窮自動機到正規(guī)文法的轉換方法
36詞法分析程序的編寫方法
本章小結
擴展閱讀
自測練習題3
習題3
第4章語法分析
41語法分析程序的功能
42自上而下分析法
421非確定的自上而下分析法的思想
422文法的左遞歸性和回溯的消除
423某些非LL(1)文法到LL(1)文法的改寫
424遞歸下降分析法
425預測分析法與預測分析表的構造
43自下而上分析法的一般原理
44算符優(yōu)先分析法
441方法概述
442算符優(yōu)先文法的定義
443算符優(yōu)先關系表的構造
444算符優(yōu)先分析算法的設計
445優(yōu)先函數的構造
446算符優(yōu)先分析法的局限性
45LR分析法
451LR分析器的工作原理和過程
452LR(0)分析法
453SLR(1)分析法
454LR(1)分析法
455LALR(1)分析法
456LR分析法對二義性文法的應用
457LR語法分析中的錯誤恢復技術
46語法分析程序的編寫方法
本章小結
擴展閱讀
自測練習題4
習題4
第5章語法制導翻譯技術和中間代碼生成
51概述
52屬性文法
53語法制導翻譯概述
54中間語言
541逆波蘭式
542三元式和樹形表示
543四元式和三地址代碼
55自下而上語法制導翻譯
551簡單算術表達式和賦值語句的翻譯
552布爾表達式的翻譯
553控制語句的翻譯
554循環(huán)語句的翻譯
555簡單說明語句的翻譯
556含數組元素的賦值語句的翻譯
557過程和函數調用語句的翻譯
56遞歸下降語法制導的翻譯
本章小結
擴展閱讀
自測練習題5
習題5
第6章符號表的組織與管理
61符號表的作用
62符號表的組織
63符號表的建立和查找
本章小結
擴展閱讀
自測練習題6
習題6
第7章代碼優(yōu)化
71優(yōu)化概述
72局部優(yōu)化
721劃分基本塊的方法
722基本塊的DAG表示
723利用DAG進行基本塊的優(yōu)化處理
73循環(huán)優(yōu)化
731程序流圖與循環(huán)
732循環(huán)查找
733循環(huán)優(yōu)化
74窺孔優(yōu)化
本章小結
擴展閱讀
自測練習題7
習題7
第8章運行時的存儲組織與管理
81概述
82靜態(tài)存儲分配
83棧式存儲分配
831簡單棧式存儲分配
832嵌套過程的棧式存儲分配
84堆式存儲分配
85臨時變量的存儲分配
本章小結
擴展閱讀
自測練習題8
習題8
第9章目標代碼生成
91概述
92假想的計算機模型
93簡單代碼生成器
931待用信息與活躍信息
932代碼生成算法
933寄存器的分配
94代碼生成器的自動生成技術
本章小結
擴展閱讀
自測練習題9
習題9
第10章并行編譯技術基本常識
101并行編譯技術的引入
102并行編譯系統(tǒng)的功能和結構
1021并行編譯系統(tǒng)的功能
1022并行編譯系統(tǒng)的結構
103向量語言編譯技術
1031向量語法處理
1032向量結構優(yōu)化
104共享存儲器并行機并行編譯技術
1041預編譯
1042可再入的目標代碼
本章小結
習題10
附錄A詞法分析程序生成器Lex
A1詞法分析程序生成器Lex簡介
A2Lex輸入文件的格式
A3正規(guī)表達式的Lex約定
A4Lex源程序中的規(guī)則部分
A5Flex的命令選項
A6Lex程序示例
附錄B語法分析程序生成器YACC
B1語法分析程序YACC簡介
B2YACC輸入文件的格式
B3YACC各部分的書寫格式
B31定義部分
B32規(guī)則部分
B33輔助程序部分
B4YACC的內置名稱和定義機制
B5Flex與Bison的聯合使用
附錄C編譯程序實驗
C1詞法分析
C11實驗目的
C12實驗要求
C13詞法分析程序的算法思想
C14詞法分析程序的C語言程序框架
C2語法分析
C21實驗目的
C22實驗要求
C23語法分析程序的算法思想
C24語法分析程序的C語言程序框架
C3語義分析
C31實驗目的
C32實驗要求
C33語義分析程序的C語言程序框架
C4算符優(yōu)先分析法
C5實驗實例
C6正規(guī)式轉換成自動機的圖形表示
C61實驗目的
C62實驗要求
C63參考設計思路
C64參考算法
附錄D自測練習題與習題參考答案
參考文獻