出版時(shí)間:2005-2 出版社:清華大學(xué) 作者:張素琴 頁(yè)數(shù):456
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書(shū)特色:
這套教材已伴隨著計(jì)算機(jī)科學(xué)與技術(shù)的飛速發(fā)展茁壯成長(zhǎng)了二十佘年,獲得了國(guó)家科學(xué)技術(shù)進(jìn)步獎(jiǎng)、國(guó)家級(jí)優(yōu)秀教材特等獎(jiǎng)等29項(xiàng)部級(jí)以上獎(jiǎng)勵(lì),被幾百所高校選作教材,教學(xué)效果好?,F(xiàn)經(jīng)修訂和增加新品種、新內(nèi)容,基本涵蓋了本科生和碩士研究生的主要課程。這套系列教材體系完整、結(jié)構(gòu)嚴(yán)謹(jǐn)、理論結(jié)合實(shí)際、注重素質(zhì)培養(yǎng)。
· 提供一個(gè)簡(jiǎn)單但不失典型性的編譯程序,有源碼(C和PASCAL兩種語(yǔ)言)和分析工具
便于清晰的展示編譯程序的基本構(gòu)成和實(shí)現(xiàn)技術(shù)。借助這個(gè)文本,學(xué)生可以使用高級(jí)語(yǔ)言擴(kuò)展該編譯程序,也可以利用編譯生成工具重新實(shí)現(xiàn)。
· 重點(diǎn)知識(shí)點(diǎn)有了典型例題的解析說(shuō)明。
·
針對(duì)面向?qū)ο笳Z(yǔ)言的語(yǔ)法結(jié)構(gòu)及其語(yǔ)義的特征,著重從類(lèi)及類(lèi)的繼承結(jié)構(gòu)上,討論編譯實(shí)現(xiàn)技術(shù)及面向?qū)ο蠹夹g(shù)構(gòu)造編譯程序的思路,便于讀者對(duì)一般可復(fù)用軟件體系結(jié)構(gòu)的理解。
本書(shū)介紹編譯系統(tǒng)的一般構(gòu)造原理、基本實(shí)現(xiàn)技術(shù)和一些自動(dòng)構(gòu)造工具。主要由語(yǔ)言基礎(chǔ)知識(shí)、詞法分析、語(yǔ)法分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成、符號(hào)表的構(gòu)造和運(yùn)行時(shí)存儲(chǔ)空間的組織等部分組成。
書(shū)中在介紹編譯程序構(gòu)造基本原理的同時(shí)引入“PL/0語(yǔ)言的編譯程序”結(jié)構(gòu)及文本,還引入了LEX、YACC使用方法與實(shí)例。
本書(shū)是高等院校計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的本科生教材,也可作為教師、研究生蔌軟件工程技術(shù)人員的參考書(shū)。
作者簡(jiǎn)介
呂映芝
清華大學(xué)計(jì)算機(jī)系教授,1961年畢業(yè)于清華大學(xué)數(shù)學(xué)力學(xué)系計(jì)算數(shù)學(xué)專(zhuān)業(yè)。主要從事程序設(shè)計(jì)語(yǔ)言編譯原理的教學(xué)工作、程序語(yǔ)言結(jié)構(gòu)和自動(dòng)生成工具的研究工作以及程序設(shè)計(jì)語(yǔ)言編譯原理計(jì)算機(jī)輔助教學(xué)軟件的研制和開(kāi)發(fā)工作。
書(shū)籍目錄
第1章 引論
1.1 什么是編譯程序
1.2 編譯過(guò)程和編譯程序的結(jié)構(gòu)
1.2.1 編譯過(guò)程概述
1.2.2 編譯程序的結(jié)構(gòu)
1.2.3 編譯階段的組合
1.3 解釋程序和一些軟件工具
1.3.1 解釋程序
1.3.2 處理源程序的軟件工具
1.4 程序設(shè)計(jì)語(yǔ)言范型
練習(xí)
第2章 pl/0編程程序的實(shí)現(xiàn)
2.1 pl/0語(yǔ)言描述
2.1.1 pl/0語(yǔ)言的語(yǔ)漢描述圖
2.1.2 pl/0語(yǔ)言文法的ebnf表示
2.2 pl/0編譯程序的結(jié)構(gòu)
2.3 pl/0編譯程序的詞法分析
2.4 pl/0編譯程序的語(yǔ)法語(yǔ)義分析
2.5 pl/0編譯程序的目標(biāo)代碼結(jié)構(gòu)和代碼生成
2.6 pl/0編譯程序的語(yǔ)法錯(cuò)誤處理
2.7 pl/0編譯程序的目標(biāo)代碼解釋執(zhí)行時(shí)的存儲(chǔ)分配
練習(xí)
第3章 文法和語(yǔ)言
3.1 文法的直觀(guān)概念
3.2 符號(hào)和符號(hào)串
3.3 文法和語(yǔ)言的形式定義
3.4 文法的類(lèi)型
3.5 上下文無(wú)關(guān)文法及其語(yǔ)法樹(shù)
3.6 句型的分析
3.6.1 自上而下的分析方法
3.6.2 自下而上的分析方法
3.6.3 句型分析的有關(guān)問(wèn)題
3.7 有關(guān)文法實(shí)用中的一些說(shuō)明
3.7.1 有關(guān)文法的實(shí)用限制
3.7.2 上下文無(wú)關(guān)文法中的規(guī)則
3.8 典型例題解答
練習(xí)
第4章 詞法分析
4.1 詞法分析程序的設(shè)計(jì)
4.1.1 詞法分析程序與語(yǔ)法分析程序的接口方式
4.1.2 詞法分析程序的輸出
4.1.3 將詞法分析工作分離的考慮
4.2 單詞的描述工具
4.2.1 正規(guī)文法
4.2.2 正規(guī)式
4.2.3 正規(guī)文法和正規(guī)式的等性
4.3 有窮自動(dòng)機(jī)
4.3.1 確定的有窮自動(dòng)機(jī)(dfa)
4.3.2 不確定的有窮自動(dòng)機(jī)(nfa)
4.3.3 nfa轉(zhuǎn)換為等價(jià)的dfa
4.3.4 確定有窮自動(dòng)機(jī)的化簡(jiǎn)
4.4 正規(guī)式和有窮自動(dòng)機(jī)的等價(jià)性
4.5 正規(guī)文法和有窮自動(dòng)機(jī)的等價(jià)性
4.6 詞法分析程序的自動(dòng)構(gòu)造工具
4.7 典型例題及解答
練習(xí)
第5章 自頂向下語(yǔ)法分析方法
5.1 確定的自頂向下分析思想
5.2 ll(1)文法的判別
5.3 某些非ll(1)文法到ll(1)文法的等價(jià)變換
5.4 不確定的自頂向下分析思想
5.5 確定的自頂向下分析方法
5.5.1 遞歸子程序法
5.5.2 預(yù)測(cè)分析方法
5.6 典型例題及解答
練習(xí)
第6章 自底向上優(yōu)先分析
6.1 自底向上優(yōu)先分析概述
6.2 簡(jiǎn)單優(yōu)先分析法
6.2.1 優(yōu)先關(guān)系
6.2.2 簡(jiǎn)單優(yōu)先文法的定義
6.2.3 簡(jiǎn)單優(yōu)先分析法的操作步驟
6.3 算符優(yōu)先分析法
6.3.1 直觀(guān)算符優(yōu)先分析法
6.3.2 算符優(yōu)先文法的定義
6.3.3 算符優(yōu)先關(guān)系表的構(gòu)造
6.3.4 算符優(yōu)先分析算法
6.3.5 優(yōu)先函數(shù)
6.3.6 算符優(yōu)先分析法的局限性
6.4 典型例題及解答
練習(xí)
第7章 lr分析
7.1 lr分析概述
7.2 lr(0)分析
7.2.1 可歸前綴和子前綴
7.2.2 識(shí)別活前綴的有限自動(dòng)機(jī)
7.2.3 活前綴及其可歸前綴的一般計(jì)算方法
7.2.4 lr(0)項(xiàng)目集規(guī)范族的構(gòu)造
7.3 slr(1)分析
7.4 lr(1)分析
7.4.1 lr(1)項(xiàng)目集族的構(gòu)造
7.4.2 lr(1)分析表的構(gòu)造
7.5 lalr(1)分析
7.6 二義性文法在lr分析中的應(yīng)用
7.7 語(yǔ)法分析程序的自動(dòng)構(gòu)造工具yacc
7.8 典型例題及解答
練習(xí)
第8章 語(yǔ)法制導(dǎo)翻譯和中間代碼生成
8.1 屬性文法
8.2 語(yǔ)法制導(dǎo)翻譯概論
8.2.1 計(jì)算語(yǔ)義規(guī)則
8.2.2 s-屬性方法和自下而上翻譯
8.2.3 l-屬性文法在自上而下分析中的實(shí)現(xiàn)
8.2.4 l-屬性文法在自下而上分析中的實(shí)現(xiàn)
8.3 中間代碼的形式
8.3.1 逆波壯大記號(hào)
8.3.2 三元式和樹(shù)表表示
8.3.3 四元式
8.4 簡(jiǎn)單賦值語(yǔ)句的翻譯
8.5 布爾表達(dá)式的翻譯
8.5.1 布爾表達(dá)式的翻譯方法
8.5.2 控制語(yǔ)句中布爾表達(dá)式的翻譯
8.6 控制結(jié)構(gòu)的翻譯
8.6.1 條件轉(zhuǎn)移
8.6.2 開(kāi)關(guān)語(yǔ)句
8.6.3 for循環(huán)語(yǔ)句
8.6.4 出口語(yǔ)句
8.6.5 goto語(yǔ)句
8.6.6 過(guò)程調(diào)用的四元式產(chǎn)生
8.7 說(shuō)明語(yǔ)句的翻譯
8.7.1 簡(jiǎn)單說(shuō)明語(yǔ)句的翻譯
8.7.2 過(guò)程中的說(shuō)明
8.8 數(shù)組和結(jié)構(gòu)的翻譯
8.8.1 數(shù)組說(shuō)明和數(shù)組元素的引用
8.8.2 結(jié)構(gòu)(記錄)說(shuō)明和引用的翻譯
練習(xí)
第9章 符號(hào)表
9.1 符號(hào)表的作用和地位
9.2 符號(hào)的主要屬性及作用
9.3 符號(hào)表的組織
9.3.1 符號(hào)表的總體組織
9.3.2 符號(hào)表項(xiàng)的排列
9.3.3 關(guān)鍵字域的組織
9.3.4 其他域的組織
9.3.5 下堆鏈域的組織
9.4 符號(hào)表的管理
9.4.1 符號(hào)表的初始化
9.4.2 符號(hào)的登錄
9.4.3 符號(hào)的查找
9.4.4 符號(hào)表的分程序結(jié)構(gòu)層次的管理
第10章 目標(biāo)程序運(yùn)行時(shí)的存儲(chǔ)組織
10.1 數(shù)據(jù)空間的三種不同使用方法和管理方法
10.1.1 靜態(tài)存儲(chǔ)分配
10.1.2 動(dòng)態(tài)存儲(chǔ)分配
10.1.3 棧式動(dòng)態(tài)存儲(chǔ)分配
10.1.4 堆式動(dòng)態(tài)存儲(chǔ)分配
10.2 棧式存儲(chǔ)分配的實(shí)現(xiàn)
10.2.1 簡(jiǎn)單的棧式存儲(chǔ)分配的實(shí)現(xiàn)
10.2.2 嵌套過(guò)程語(yǔ)言的棧式實(shí)現(xiàn)
10.2.3 分程序結(jié)構(gòu)的存儲(chǔ)管理
10.3 參數(shù)傳遞
10.3.1 傳值
10.3.2 傳地址
10.3.3 過(guò)程參數(shù)
10.4 過(guò)程調(diào)用、過(guò)程進(jìn)入和過(guò)程返回
練習(xí)
第11章 代碼優(yōu)化
11.1 優(yōu)化技術(shù)簡(jiǎn)介
11.2 局部?jī)?yōu)化
11.2.1 基本塊的劃分
11.2.2 基本塊的變換
11.2.3 基本塊的有向圖dag(directed acyclic graph)表示
11.2.4 dag的應(yīng)用
11.3 控制流分析和循環(huán)優(yōu)化
11.3.1 程序流圖
11.3.2 循環(huán)的查找
11.3.3 循環(huán)優(yōu)化
11.4 數(shù)據(jù)流的分析與全局優(yōu)化
11.4.1 一些主要的概念
11.4.2 數(shù)據(jù)流言程的一般形式
11.4.3 到達(dá)-定值數(shù)據(jù)流方程
11.4.4 可用表達(dá)式及其數(shù)據(jù)流方程
11.4.5 活躍變量數(shù)據(jù)流方程
11.4.6 復(fù)寫(xiě)傳播
練習(xí)
第12章 代碼生成
12.1 代碼生成概述
12.1.1 代碼生成程序在編譯系統(tǒng)中的位置
12.1.2 設(shè)計(jì)代碼生成程序的基本問(wèn)題
12.2 一個(gè)簡(jiǎn)單的代碼生成程序
12.2.1 計(jì)算機(jī)模型
12.2.2 待用信息鏈表法
12.2.3 代碼生成算法
12.3 幾種常用的代碼生成程序的開(kāi)發(fā)方法
12.3.1 解釋性代碼生成法
12.3.2 模式匹配代碼生成法
12.3.3 表驅(qū)動(dòng)代碼生成法
12.4 全局寄存器分配(圖著色法)
12.4.1 概述
12.4.2 圖著色寄存器分配法的相關(guān)技術(shù)
12.4.3 示例
12.5 代碼生成程序的自動(dòng)化構(gòu)造
12.5.1 模式匹配與動(dòng)態(tài)規(guī)劃
12.5.2 基于語(yǔ)法制導(dǎo)的代碼生成程序自動(dòng)構(gòu)造技術(shù)
12.5.3 基于語(yǔ)義制導(dǎo)的代碼生成程序自動(dòng)構(gòu)造技術(shù)
練習(xí)
第13章 編譯程序的構(gòu)造
13.1 編譯程序的書(shū)寫(xiě)
13.1.1 編譯程序的書(shū)寫(xiě)語(yǔ)言與t型圖
13.1.2 編譯程序的自展技術(shù)
13.2 可重定向編譯程序
13.2.1 概述
13.2.2 支持可重定向編譯的關(guān)鍵技術(shù)
13.2.3 常用的可重定編譯程序
13.3 gcc的剖析
13.3.1 gcc的總體結(jié)構(gòu)
13.3.2 gcc的中間表示
13.3.3 gcc的機(jī)器描述
13.3.4 gcc的代碼生成與機(jī)器描述的接口
13.4 gcc的定制
13.4.1 gcc的剪裁
13.4.2 gcc編譯程序的安裝與配置
13.5 gcc的優(yōu)化
13.5.1 概述
13.5.2 窺孔優(yōu)化
13.5.3 基于機(jī)器描述的窺孔優(yōu)化
13.5.4 修改gcc源程序的窺孔優(yōu)化
練習(xí)
第14章 面向?qū)ο笳Z(yǔ)言的編譯
14.1 面向?qū)ο笳Z(yǔ)言的基本概念
14.2 面向?qū)ο笳Z(yǔ)言語(yǔ)法結(jié)構(gòu)及語(yǔ)義處理的特征
14.2.1 面向?qū)ο笳Z(yǔ)言的類(lèi)的語(yǔ)法結(jié)構(gòu)及語(yǔ)義
14.2.2 面向?qū)ο笳Z(yǔ)言的有效類(lèi)、延遲類(lèi)及延遲成員
14.2.3 面向?qū)ο笳Z(yǔ)言的類(lèi)屬類(lèi)
14.2.4 面向?qū)ο笳Z(yǔ)言的繼承類(lèi)
14.3 多態(tài)實(shí)例變量、多態(tài)引用的類(lèi)型檢查及綁定
14.3.1 實(shí)例變量和多態(tài)引用
14.3.2 靜態(tài)類(lèi)型檢查及動(dòng)態(tài)類(lèi)型檢查
14.3.3 對(duì)象的創(chuàng)建
14.4 面向?qū)ο蟛僮鞯恼Z(yǔ)義
14.4.1 類(lèi)名的屬性構(gòu)造
14.4.2 類(lèi)名的屬性及其結(jié)構(gòu)
14.5 類(lèi)成員名的屬性及其結(jié)構(gòu)
14.5.1 類(lèi)名的屬性及其結(jié)構(gòu)
14.5.2 類(lèi)成員名的屬性及其結(jié)構(gòu)
14.6 對(duì)象的存儲(chǔ)管理及廢棄單元回收
14.6.1 對(duì)象的三種存儲(chǔ)區(qū)組織管理方式
14.6.2 靜態(tài)模型和棧式模型廢棄單元的回收
14.6.3 堆式模型廢棄單元的回收
練習(xí)
第15章 編譯程序的面向?qū)ο髽?gòu)造
15.1 編譯程序面向?qū)ο髽?gòu)造的基本概念
15.1.1 編譯程序的需求
15.1.2 編譯程序的分解
15.1.3 類(lèi)的構(gòu)造層次
15.1.4 類(lèi)的特性定義
15.2 構(gòu)造編譯程序的面向?qū)ο箢?lèi)庫(kù)
15.2.1 對(duì)傳統(tǒng)編譯程序構(gòu)造中軟件復(fù)用的分析
15.2.2 面向?qū)ο缶幾g類(lèi)庫(kù)的地位
15.2.3 語(yǔ)言編譯論的面向?qū)ο笳撚蚍治?br /> 15.3面向?qū)ο缶幾g程序的符號(hào)表構(gòu)造
練習(xí)
附錄a pl、0編譯程序文本
a.1 pascal版本
a.2 c版本
參考文獻(xiàn)
編輯推薦
《編譯原理》是高等院校計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的本科生教材,也可作為教師、研究生蔌軟件工程技術(shù)人員的參考書(shū)。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版