許清、劉香芹編*的《編譯方法及應(yīng)用(普通高等教育創(chuàng)新型人才培養(yǎng)規(guī)劃教材)》全面地討論了編譯器設(shè)計(jì)方面的主要問題,包括詞法分析、語法分析、語法制導(dǎo)翻譯、目標(biāo)代碼生成等分析技術(shù)。作者長期從事編譯方法課程的教學(xué)工作,將多年的教學(xué)體會(huì)與認(rèn)識(shí)融人教材中,選擇學(xué)生熟悉的C語言作為編譯對(duì)象語言融人課程中,不僅包含編譯原理的基本理論,還列舉了一些實(shí)例,特別是將編譯理論與實(shí)際應(yīng)用相結(jié)合,使學(xué)生可以體會(huì)到編譯的理論和技術(shù)在軟件設(shè)計(jì)中的應(yīng)用。
本書有較強(qiáng)的實(shí)用性,可作為應(yīng)用型本科計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)、普通本科計(jì)算機(jī)及相關(guān)專業(yè)編譯原理課程的教材,也可以供相關(guān)專業(yè)的研究生、計(jì)算機(jī)軟件技術(shù)人員等作參考。
第1章 編譯程序概述
1.1 高級(jí)語言概述
1.2 編譯程序
1.2.1 編譯程序與解釋程序
1.2.2 編譯程序的工作過程
1.3 編譯程序的結(jié)構(gòu)
1.3.1 編譯程序結(jié)構(gòu)簡介
1.3.2 符號(hào)表管理
1.3.3 出錯(cuò)處理
1.3.4 遍的概念
1.4 C語言編譯器
1.5 編譯程序的生成
1.6 小 結(jié)
習(xí)題1
第2章 高級(jí)語言的語法描述
2.1 程序語言的定義
2.1.1 語 法
2.1.2 語 義
2.2 程序語言的語法基礎(chǔ)
2.2.1 文法的討論
2.2.2 符號(hào)和符號(hào)串
2.2.3 文法和語言的形式定義
2.2.4 語法分析樹和二義性
2.3 C語言與文法
2.4 形式語言簡介
2.5 小 結(jié)
習(xí)題2
第3章 詞法分析
3.1 詞法分析器的功能及機(jī)內(nèi)表示
3.1.1 詞法分析器的功能
3.1.2 單詞的機(jī)內(nèi)表示
3.2 單詞的描述方法
3.2.1 正規(guī)文法
3.2.2 正規(guī)表達(dá)式
3.3 詞法分析器的設(shè)計(jì)
3.3.1 設(shè)計(jì)詞法分析器需要考慮的主要問題
3.3.2 符號(hào)表
3.3.3 錯(cuò)誤處理
3.3.4 詞法分析器的設(shè)計(jì)工具
3.3.5 狀態(tài)轉(zhuǎn)換圖的實(shí)現(xiàn)
3.4 有限自動(dòng)機(jī)簡介
3.4.1 確定有限自動(dòng)機(jī)
3.4.2 非確定有限自動(dòng)機(jī)
3.4.3 正規(guī)式、正規(guī)文法和有限自動(dòng)機(jī)之間的關(guān)系
3.4.4 由正規(guī)式構(gòu)造NFA、NFA 確定化為DFA、DFA 化簡
3.4.5 確定的有限自動(dòng)機(jī)化簡
3.5 詞法分析程序的自動(dòng)產(chǎn)生
3.5.1 語言LEX的一般描述
3.5.2 LEX 的實(shí)現(xiàn)
3.6 (C語言小子集)詞法分析程序設(shè)計(jì)
3.7 正規(guī)(則)表達(dá)式的應(yīng)用
3.8 小 結(jié)
習(xí)題3
第4章 語法分析
4.1 語法分析程序的功能
4.2 語法成分的表示
4.3 語法分析自上而下分析
4.3.1 自上而下分析的基本問題
4.3.2 遞歸下降分析
4.3.3 LL(1)分析法
4.4 語法分析自下而上分析
4.4.1 自下而上分析的基本問題
4.4.2 規(guī)范歸約簡述
4.4.3 符號(hào)棧的使用與語法樹的表示
4.4.4 算符優(yōu)先分析
4.4.5 LR分析法
4.5 語法分析器的自動(dòng)產(chǎn)生工具YACC
4.6 小 結(jié)
習(xí)題4
第5章 語義分析與中間代碼的生成
5.1 語義分析的功能
5.2 屬性文法
5.2.1 屬性的類型
5.2.2 屬性文法的分類
5.3 中間代碼及其分類
5.3.1 后綴式
5.3.2 圖表示
5.3.3 三地址代碼
5.4 典型語句的分析與翻譯
5.4.1 過程中的說明語句
5.4.2 賦值語句
5.4.3 布爾表達(dá)式翻譯方法
5.4.4 控制語句的翻譯
5.4.5 過程語句的翻譯
5.5 小 結(jié)
習(xí)題5
第6章 運(yùn)行環(huán)境與符號(hào)表
6.1 運(yùn)行環(huán)境
6.1.1 存儲(chǔ)分配的方法
6.1.2 靜態(tài)存儲(chǔ)分配
6.1.3 棧(stack)式動(dòng)態(tài)存儲(chǔ)分配
6.1.4 堆(heap)式動(dòng)態(tài)存儲(chǔ)分配
6.2 符號(hào)表
6.2.1 符號(hào)表的組織與內(nèi)容
6.2.2 符號(hào)表的查填方法
6.3 小 結(jié)
習(xí)題6
第7章 編譯優(yōu)化
7.1 優(yōu)化的基本概念
7.2 局部優(yōu)化
7.3 循環(huán)優(yōu)化
7.4 小 結(jié)
習(xí)題7
第8章 目標(biāo)代碼的生成與算法
8.1 基本問題
8.1.1 代碼生成器的輸入
8.1.2 目標(biāo)程序
8.1.3 指令選擇
8.1.4 寄存器分配
8.1.5 計(jì)算順序選擇
8.2 目標(biāo)計(jì)算機(jī)模型
8.3 一個(gè)簡單的代碼生成器
8.3.1 待用信息和活躍信息
8.3.2 寄存器描述和地址描述
8.3.3 目標(biāo)代碼生成算法
8.3.4 代碼生成算法
8.4 寄存器分配
8.5 小 結(jié)
習(xí)題8
參考文獻(xiàn)