《編譯原理(第3版)/“十二五”普通高等教育本科國家級(jí)規(guī)劃教材》介紹編譯器構(gòu)造的一般原理和基本實(shí)現(xiàn)方法,內(nèi)容包括詞法分析、語法分析、語義分析、中間代碼生成、目標(biāo)代碼生成、獨(dú)立于機(jī)器的優(yōu)化和依賴于機(jī)器的優(yōu)化等。除了介紹命令式編程語言的編譯技術(shù)外,《編譯原理(第3版)/“十二五”普通高等教育本科國家級(jí)規(guī)劃教材》還介紹面向?qū)ο缶幊陶Z言和函數(shù)式編程語言的實(shí)現(xiàn)技術(shù)。另外,《編譯原理(第3版)/“十二五”普通高等教育本科國家級(jí)規(guī)劃教材》還強(qiáng)調(diào)一些相關(guān)的理論知識(shí),如形式語言和自動(dòng)機(jī)理論、語法制導(dǎo)的定義和屬性文法、類型論和類型系統(tǒng)等。 《編譯原理(第3版)/“十二五”普通高等教育本科國家級(jí)規(guī)劃教材》內(nèi)容豐富、講解深入,注意理論聯(lián)系實(shí)際,可作為高等學(xué)校計(jì)算機(jī)科學(xué)及相關(guān)專業(yè)的教材,也可供計(jì)算機(jī)軟件工程技術(shù)人員參考。
《編譯原理(第3版)/“十二五”普通高等教育本科國家規(guī)劃教材》特色:
內(nèi)容全面、強(qiáng)調(diào)主線。包括詞法分析、語法分析、語法制導(dǎo)的翻譯、靜態(tài)語義分析、運(yùn)行時(shí)存儲(chǔ)空間的組織和管理、中間代碼生成、目標(biāo)代碼生成、代碼優(yōu)化、編譯系統(tǒng)與運(yùn)行系統(tǒng)、面向?qū)ο笳Z言編譯技術(shù)和函數(shù)式語言編譯技術(shù)等,并以編譯的各個(gè)邏輯階段為主線?重視理論和形式方法。在圍繞主線的同時(shí),將相關(guān)理論和形式化技術(shù)的介紹穿插其中,有助于學(xué)生較快地領(lǐng)會(huì)和掌握;內(nèi)容難易有別,難度較大的內(nèi)容作為可選部分放在每章的最后,以拓寬教材的適用面。習(xí)題聯(lián)系實(shí)際。本教材的很多例題和習(xí)題是從實(shí)際碰到的問題中抽象或抽取出來的:它們聯(lián)系編程、編譯、運(yùn)行的實(shí)際,能激發(fā)學(xué)生學(xué)習(xí)本課程的興趣。
陳意云,1946年生,教授,博士生導(dǎo)師。1980年畢業(yè)于中國科學(xué)技術(shù)大學(xué),1982年12月在上海華東計(jì)算技術(shù)研究所獲碩士學(xué)位。1983年到中國科學(xué)技術(shù)大學(xué)計(jì)算機(jī)系工作,1989年到美國芝加哥大學(xué)訪問兩年。長期從事程序設(shè)計(jì)語言理論和實(shí)現(xiàn)技術(shù)、程序驗(yàn)證、軟件安全等方面的研究工作,主持了7項(xiàng)與這些方向有關(guān)的國家自然科學(xué)基金項(xiàng)目。長期從事“編譯原理”和“程序設(shè)計(jì)語言理論”等課程的教學(xué)工作,2007年獲安徽省教學(xué)名師獎(jiǎng)。本書兩位作者在編譯原理課程系列教材建設(shè)方面的工作獲2005年安徽省高等教育省級(jí)教學(xué)成果三等獎(jiǎng)。
張昱,1972年生,副教授。1996年畢業(yè)于合肥工業(yè)大學(xué),獲碩士學(xué)位;2004年12月畢業(yè)于中國科學(xué)技術(shù)大學(xué),獲博士學(xué)位。主要從事“數(shù)據(jù)結(jié)構(gòu)”、“縭譯原理”、“程序設(shè)計(jì)語言理論”等課程的教學(xué)工作。主要研究方向是:程序設(shè)計(jì)語言理論和實(shí)現(xiàn)技術(shù),特別是面向新型系統(tǒng)結(jié)構(gòu)的并行語言設(shè)計(jì)和編譯、并行程序分析和驗(yàn)證,即時(shí)編譯器輔助的垃圾收集技術(shù)。
第1章 引論
1.1 編譯器概述
1.1.1 詞法分析
1.1.2 語法分析
1.1.3 語義分析
1.1.4 中間代碼生成
1.1.5 代碼優(yōu)化
1.1.6 代碼生成
1.1.7 符號(hào)表管理
1.1.8 階段的分組
1.1.9 解釋器
1.2 編譯器技術(shù)的應(yīng)用
1.2.1 高級(jí)語言的實(shí)現(xiàn)
1.2.2 針對(duì)計(jì)算機(jī)體系結(jié)構(gòu)的優(yōu)化
1.2.3 新計(jì)算機(jī)體系結(jié)構(gòu)的設(shè)計(jì)
1.2.4 程序翻譯
1.2.5 提高軟件開發(fā)效率的工具
習(xí)題1
第2章 詞法分析
2.1 詞法記號(hào)及屬性
2.1.1 詞法記號(hào)、模式、詞法單元
2.1.2 詞法記號(hào)的屬性
2.1.3 詞法錯(cuò)誤
2.2 詞法記號(hào)的描述與識(shí)別
2.2.1 串和語言
2.2.2 正規(guī)式
2.2.3 正規(guī)定義
2.2.4 狀態(tài)轉(zhuǎn)換圖
2.3 有限自動(dòng)機(jī)
2.3.1 不確定的有限自動(dòng)機(jī)
2.3.2 確定的有限自動(dòng)機(jī)
2.3.3 NFA到DFA的變換
2.3.4 DFA的化簡(jiǎn)
2.4 從正規(guī)式到有限自動(dòng)機(jī)
2.5 詞法分析器的生成器
習(xí)題2
第3章 語法分析
3.1 上下文無關(guān)文法
3.1.1 上下文無關(guān)文法的定義
3.1.2 推導(dǎo)
3.1.3 分析樹
3.1.4 二義性
3.2 語言和文法
3.2.1 正規(guī)式和上下文無關(guān)文法的比較
3.2.2 分離詞法分析器的理由
3.2.3 驗(yàn)證文法產(chǎn)生的語言
3.2.4 適當(dāng)?shù)谋磉_(dá)式文法
3.2.5 消除二義性
3.2.6 消除左遞歸
3.2.7 提左因子
3.2.8 非上下文無關(guān)的語言構(gòu)造
3.2.9 形式語言鳥瞰
3.3 自上而下分析
3.3.1 自上而下分析的一般方法
3.3.2 LL(1)文法
3.3.3 遞歸下降的預(yù)測(cè)分析
3.3.4 非遞歸的預(yù)測(cè)分析
3.3.5 構(gòu)造預(yù)測(cè)分析表
3.3.6 預(yù)測(cè)分析的錯(cuò)誤恢復(fù)
3.4 自下而上分析
3.4.1 歸約
3.4.2 句柄
3.4.3 用棧實(shí)現(xiàn)移進(jìn)一歸約分析
3.4.4 移進(jìn)一歸約分析的沖突
3.5 LR分析器
3.5.1 LR分析算法
3.5.2 LR文法和LR分析方法的特點(diǎn)
3.5.3 構(gòu)造SLR分析表
3.5.4 構(gòu)造規(guī)范的LR分析表
3.5.5 構(gòu)造LALR分析表
3.5.6 非二義且非LR的上下文無關(guān)文法
3.6 二義文法的應(yīng)用
3.6.1 使用算符的優(yōu)先級(jí)和結(jié)合性來解決沖突
3.6.2 使用其他約定來解決沖突
3.6.3 LR分析的錯(cuò)誤恢復(fù)
3.7 語法分析器的生成器
3.7.1 分析器的生成器Yacc
3.7.2 用Yacc處理二義文法
3.7.3 Yace的錯(cuò)誤恢復(fù)
習(xí)題3
第4章 語法制導(dǎo)的翻譯
4.1 語法制導(dǎo)的定義
4.1.1 語法制導(dǎo)定義的形式
4.1.2 綜合屬性
4.1.3 繼承屬性
4.1.4 屬性依賴圖
4.1.5 屬性計(jì)算次序
4.2 S屬性定義的自下而上計(jì)算
4.2.1 語法樹
4.2.2 構(gòu)造語法樹的語法制導(dǎo)定義
4.2.3 S屬性的自下而上計(jì)算
4.3 L屬性定義的自上而下計(jì)算
4.3.1 L屬性定義
4.3.2 翻譯方案
4.3.3 預(yù)測(cè)翻譯器的設(shè)計(jì)
4.3.4 用綜合屬性代替繼承屬性
4.4 L屬性的自下而上計(jì)算
4.4.1 刪除翻譯方案中嵌入的動(dòng)作
4.4.2 分析棧上的繼承屬性
4.4.3 模擬繼承屬性的計(jì)算
習(xí)題4
第5章 類型檢查
5.1 類型在編程語言中的作用
5.1.1 執(zhí)行錯(cuò)誤和安全語言
5.1.2 類型化語言和類型系統(tǒng)
5.1.3 類型化語言的優(yōu)點(diǎn)
5.2 類型系統(tǒng)的描述語言
5.2.1 定型斷言
5.2.2 定型規(guī)則
5.2.3 類型檢查和類型推斷
5.3 一個(gè)簡(jiǎn)單類型檢查器的規(guī)范
5.3.1 一個(gè)簡(jiǎn)單的語言
5.3.2 類型系統(tǒng)
5.3.3 類型檢查
5.3.4 類型轉(zhuǎn)換
5.4 多態(tài)函數(shù)
5.4.1 為什么要使用多態(tài)函數(shù)
5.4.2 類型變量
5.4.3 一個(gè)含多態(tài)函數(shù)的語言
5.4.4 代換、實(shí)例與合
5.4.5 多態(tài)函數(shù)的類型檢查
5.5 類型表達(dá)式的等價(jià)
5.5.1 類型表達(dá)式的結(jié)構(gòu)等價(jià)
5.5.2 類型表達(dá)式的名字等價(jià)
……
第6章 運(yùn)行時(shí)存儲(chǔ)空間的組織和管理
第7章 中間代碼生成
第8章 代碼生成
第9章 獨(dú)立于機(jī)器的優(yōu)化
第10章 依賴于機(jī)器的優(yōu)化
第11章 編譯系統(tǒng)和運(yùn)行時(shí)系統(tǒng)
第12章 面向?qū)ο笳Z言的編譯
第13章 函數(shù)式語言的編譯