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