出版時(shí)間:2004-8-1 出版社:高等教育出版社 作者:何炎祥 頁數(shù):297
Tag標(biāo)簽:無
內(nèi)容概要
《編譯原理》主要介紹設(shè)計(jì)和構(gòu)造編譯程序的基本原理和方法。內(nèi)容包括形式語言理論和自動(dòng)機(jī)理論、常用的詞法分析方法、各種經(jīng)典的語法分析方法、語法制導(dǎo)翻譯方法、存儲(chǔ)器的組織與管理方法、符號(hào)表的組織與造查表方法、代碼優(yōu)化和代碼生成方法、并行編譯程序及編譯自動(dòng)化技術(shù)等。
《編譯原理》注重理論與實(shí)踐、原理與方法的互通,基本概念闡述清晰,講授深入淺出,循序漸進(jìn),系統(tǒng)性強(qiáng)。各章之后還附有難度不一的習(xí)題供復(fù)習(xí)、思考和探索之用?!毒幾g原理》既可作為高等院校計(jì)算機(jī)專業(yè)的教材,也可供相關(guān)專業(yè)師生和科技工作者及軟件研發(fā)人學(xué)習(xí)和參考。
書籍目錄
第1章 引論
1.1 翻譯程序
1.1.1 程序設(shè)計(jì)語言
1.1.2 翻譯程序
1.2 為什么需要編譯程序
1.3 編譯程序的工作過程
1.3.1 分析
1.3.2 綜合
1.4 編譯程序的結(jié)構(gòu)
1.5 編譯程序的組織方式
1.6 編譯程序的其他有關(guān)技術(shù)
1.6.1 編譯程序的自展技術(shù)
1.6.2 編譯程序的移植技術(shù)
1.6.3 編譯程序自動(dòng)化
1.6.4 程序的可再入性
1.7 翻譯程序編寫系統(tǒng)
1.8 并行編譯程序
1.9 小結(jié)
習(xí)題
第2章 形式語言概論
2.1 語言成分
2.2 產(chǎn)生式文法和語言
2.2.1 產(chǎn)生式文法
2.2.2 上下文無關(guān)文法
2.2.3 上下文無關(guān)文法定義的語言
2.3 文法的分類
2.3.1 文法分類
2.3.2 文法分類的意義
2.3.3 文法舉例
2.4 語言和語法
2.4.1 句型、句子和語言
2.4.2 語法樹
2.4.3 語法樹的生成過程
2.5 文法和語言的一些特性
2.5.1 無用非終結(jié)符號(hào)
2.5.2 不可達(dá)文法符號(hào)
2.5.3 可空非終結(jié)符
2.5.4 最左、最右推導(dǎo)和規(guī)范推導(dǎo)
2.5.5 二義性
2.6 分析方法簡介
2.6.1 自上而下分析方法
2.6.2 確定的自上而下分析方法
2.6.3 自下而上分析方法
2.6.4 文法在內(nèi)存中的表示
2.7 小結(jié)
習(xí)題二
第3章 有窮自動(dòng)機(jī)
3.1 概述
3.2 有窮自動(dòng)機(jī)的形式定義
3.2.1 狀態(tài)轉(zhuǎn)換表
3.2.2 狀態(tài)轉(zhuǎn)換圖
3.2.3 構(gòu)形和移動(dòng)
3.2.4 自動(dòng)機(jī)的等價(jià)性
3.2.5 非確定有窮自動(dòng)機(jī)
3.3 ndfsa到dfsa的轉(zhuǎn)換
3.3.1 空移環(huán)路的尋找和消除
3.3.2 消除空移
3.3.3 利用狀態(tài)轉(zhuǎn)換表消除空移
3.3.4 確定化——子集法
3.3.5 確定化——造表法
3.3.6 消除不可達(dá)狀態(tài)
3.3.7 確定的有窮自動(dòng)機(jī)的化簡
3.3.8 從化簡后的dfsa到程序表示
3.3.9 小結(jié)
3.4 正規(guī)文法和有窮自動(dòng)機(jī)
3.4.1 從正規(guī)文法到fsa
3.4.2 從fsa到正規(guī)文法
3.5 正規(guī)表達(dá)式與fsa
3.5.1 正規(guī)表達(dá)式的定義
3.5.2 正規(guī)表達(dá)式的cfg
3.5.3 正規(guī)表達(dá)式與fsa的對(duì)應(yīng)性
3.5.4 正規(guī)表達(dá)式到ndfsa的轉(zhuǎn)換
3.5.5 ndfsa m到正規(guī)表達(dá)式的轉(zhuǎn)換
3.5.6 從正規(guī)文法到正規(guī)表達(dá)式
3.6 dfsa在計(jì)算機(jī)中的表示
3.6.1 矩陣表示法
3.6.2 表結(jié)構(gòu)
3.6.3 程序表示法
3.7 小結(jié)
習(xí)題三
第4章 詞法分析
4.1 詞法分析概述
4.2 單詞符號(hào)
4.3 掃描程序的設(shè)計(jì)
4.4 標(biāo)識(shí)符的處理
4.4.1 類型的機(jī)內(nèi)表示
4.4.2 標(biāo)識(shí)符的語義表示
4.4.3 符號(hào)表(標(biāo)識(shí)符表)
4.4.4 標(biāo)識(shí)符表處理的基本思想
4.5 設(shè)計(jì)詞法分析程序的直接方法
4.6 與設(shè)計(jì)掃描程序相關(guān)的幾個(gè)問題
4.7 小結(jié)
習(xí)題四
第5章 自上而下語法分析
5.1 非確定的下推自動(dòng)機(jī)
5.1.1 pda的形式定義
5.1.2 pda的構(gòu)形和移動(dòng)
5.1.3 上下文無關(guān)語言與pda
5.2 消除左遞歸方法
5.2.1 文法的左遞歸性
5.2.2 用擴(kuò)展的bnf表示法消除左遞歸
5.2.3 直接改寫法
5.2.4 消除所有左遞歸的算法
5.3 LL(k)文法
5.3.1 LL(1)文法的判斷條件
5.3.2 集合first、follow和select的構(gòu)造
5.4 確定的LL(1)分析器的構(gòu)造
5.4.1 構(gòu)造分析表m的算法
5.4.2 LL(1)分析器的總控算法
5.5 LL(k)文法的幾個(gè)結(jié)論
5.6 遞歸下降分析程序及其設(shè)計(jì)
5.6.1 框圖設(shè)計(jì)
5.6.2 程序設(shè)計(jì)
5.7 帶回溯的自上而下分析法
5.7.1 文法在內(nèi)存中的存放形式
5.7.2 其他信息的存放
5.7.3 帶回溯的自上而下分析算法
5.8 小結(jié)
習(xí)題五
第6章 自下而上分析和優(yōu)先分析方法
6.1 短浯和句柄
6.2 移進(jìn)-歸約方法
6.3 非確定的自下而上分析器
6.4 有關(guān)文法的一些關(guān)系
6.4.1 關(guān)系
6.4.2 布爾矩陣和關(guān)系
6.4.3 warshall算法
6.4.4 關(guān)系first和last
6.5 簡單優(yōu)先分析方法
6.5.1 優(yōu)先關(guān)系
6.5.2 簡單優(yōu)先關(guān)系的形式化構(gòu)造方法
6.5.3 簡單優(yōu)先文法及其分析算法
6.5.4 簡單優(yōu)先分析方法的局限性
6.6 算符優(yōu)先分析方法
6.6.1 算符優(yōu)先文法
6.6.2 opg優(yōu)先關(guān)系的構(gòu)造
6.6.3 素短語及句型的分析
6.6.4 算符優(yōu)先分析算法
6.7 優(yōu)先函數(shù)及其構(gòu)造
6.7.1 bell方法
6.7.2 floyd方法
6.7.3 兩種方法的比較
6.8 兩種優(yōu)先分析方法的比較
6.9 小結(jié)
習(xí)題六
第7章 自下而上的lr(k)分析方法
7.1 lr(k)文法和lr(k)分析器
7.2 lr(0)分析表的構(gòu)造
7.2.1 規(guī)范句型的活前綴
7.2.2 lr(0)項(xiàng)目
7.2.3 文法g的拓廣文法
7.2.4 closure(1)函數(shù)
7.2.5 goto(1,x)函數(shù)
7.2.6 lr(0)項(xiàng)目集規(guī)范族
7.2.7 有效項(xiàng)目
7.2.8 舉例
7.2.9 lr(0)文法
7.2.10 構(gòu)造lr(0)分析表的算法
7.2.11 構(gòu)造lr(0)分析表步驟小結(jié)
7.3 slr分析表的構(gòu)造
7.4 規(guī)范lr(1)分析表的構(gòu)造
7.5 lalr分析表的構(gòu)造
7.6 無二義性規(guī)則的使用
7.7 小結(jié)
7.7.1 lr分析程序
7.7.2 lr分析表的自動(dòng)構(gòu)造
7.7.3 文法間的關(guān)系
7.7.4 lr文法舉例
7.7.5 有關(guān)lr文法的幾個(gè)結(jié)論
習(xí)題七
第8章 語法制導(dǎo)翻譯法
8.1 一般原理和樹變換
8.1.1 一般原理
8.1.2 樹變換
8.2 簡單sdts和自上而下翻譯器
8.3 簡單后綴sdts和自下而上翻譯器
8.3.1 后綴翻譯
8.3.2 if-then-else控制語句
8.3.3 函數(shù)調(diào)用
8.4 抽象語法樹的構(gòu)造
8.4.1 自下而上構(gòu)造ast
8.4.2 ast的拓廣
8.5 屬性文法
8.5.1 l屬性文法
8.5.2 s屬性文法
8.6 中間代碼形式
8.6.1 逆波蘭表示法
8.6.2 逆波蘭表示法的推廣
8.6.3 四元式
8.6.4 三元式
8.7 屬性翻譯文法的應(yīng)用
8.7.1 綜合屬性與自下而上定值
8.7.2 繼承屬性和自上而下定值
8.7.3 布爾表達(dá)式到四元式的翻譯
8.7.4 條件語句的翻譯
8.7.5 迭代語句的翻譯
8.8 小結(jié)
習(xí)題八
第9章 運(yùn)行時(shí)的存儲(chǔ)組織與管理
9.1 數(shù)據(jù)區(qū)和屬性字
9.2 基本數(shù)據(jù)類型的存儲(chǔ)分配
9.3 數(shù)組的存儲(chǔ)分配
9.3.1 單塊存儲(chǔ)方式
9.3.2 信息向量與數(shù)組分配程序
9.3.3 多塊存儲(chǔ)方式
9.4 記錄結(jié)構(gòu)的存儲(chǔ)分配
9.5 參數(shù)傳遞方式及其實(shí)現(xiàn)
9.5.1 換名
9.5.2 傳值
9.5.3 傳地址
9.5.4 傳結(jié)果
9.5.5 數(shù)組名用做實(shí)參
9.5.6 過程名用做實(shí)參
9.6 棧式存儲(chǔ)分配方法
9.6.1 概述
9.6.2 現(xiàn)行display和現(xiàn)行數(shù)據(jù)區(qū)
9.6.3 標(biāo)識(shí)符的作用域
9.6.4 分程序的人口和出口工作
9.6.5 過程調(diào)用時(shí)的存儲(chǔ)管理
9.7 堆式存儲(chǔ)分配方法
9.8 臨時(shí)工作單元的存儲(chǔ)分配
9.9 小結(jié)
習(xí)題九
第10章 符號(hào)表的組織和查找
10.1 符號(hào)表的一般組織形式
10.2 符號(hào)表中的數(shù)據(jù)
10.3 符號(hào)表的構(gòu)造與查找
10.3.1 線性查找
10.3.2 折半法
10.3.3 雜湊技術(shù)
10.4 分程序結(jié)構(gòu)的符號(hào)表
10.5 小結(jié)
習(xí)題十
第11章 優(yōu)化
11.1 基本塊及其求法
11.2 優(yōu)化舉例
11.3 利用變量的定義點(diǎn)進(jìn)行優(yōu)化
11.3.1 變量的定義點(diǎn)
11.3.2 循環(huán)中不變式的外提
11.3.3 運(yùn)算強(qiáng)度削弱
11.3.4 公共表達(dá)式的消除
11.3.5 常量合并
11.4 循環(huán)優(yōu)化
11.5 借助dag進(jìn)行優(yōu)化
11.6 并行分支的優(yōu)化
11.7 窺孔優(yōu)化
11.8 小結(jié)
習(xí)題十一
第12章 代碼生成
12.1 假想的計(jì)算機(jī)模型
12.2 從四元式生成代碼
12.3 從三元式生成代碼
12.4 從樹形表示生成代碼
12.5 從逆波蘭表示生成代碼
12.6 寄存器的分配
12.7 小結(jié)
習(xí)題十二
參考文獻(xiàn)
章節(jié)摘錄
第1章引論 編譯程序是高級(jí)語言的支撐基礎(chǔ),是計(jì)算機(jī)系統(tǒng)中重要的系統(tǒng)軟件之一。編譯原理是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最為迅速的一個(gè)分支,現(xiàn)已基本形成了一套比較系統(tǒng)、完整的理論和方法。本章主要介紹為什么需要編譯程序以及編譯程序的功能、體系結(jié)構(gòu)、工作過程、組織方式、編譯程序與高級(jí)程序設(shè)計(jì)語言的關(guān)系,以及編譯自動(dòng)化和并行編譯程序等方面的基本知識(shí)?! ?。1翻譯程序 1。1。1程序設(shè)計(jì)語言眾所周知,自然語言是人類傳遞信息、交流思想和情感的工具,程序設(shè)計(jì)語言則是人與計(jì)算機(jī)聯(lián)系的工具。人正是通過程序設(shè)計(jì)語言指揮計(jì)算機(jī)按照人的意志進(jìn)行運(yùn)算和操作、顯示信息和輸出運(yùn)算結(jié)果的?! ∽钤绲挠?jì)算機(jī)程序設(shè)計(jì)語言是機(jī)器語言(指令系統(tǒng))。機(jī)器語言中的指令都是用二進(jìn)制代碼直接表示的,指令難記、難認(rèn),因而機(jī)器語言程序難寫、難讀、難修改。一個(gè)機(jī)器語言程序的編寫時(shí)間往往是它運(yùn)行時(shí)間的幾十倍到幾百倍。隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,出現(xiàn)了符號(hào)語言和匯編語言等程序設(shè)計(jì)語言,它們雖然比機(jī)器語言前進(jìn)了一步,但仍屬于計(jì)算機(jī)低級(jí)語言,用來編寫程序還是很不方便。程序編寫的效率低下阻礙了計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展和推廣應(yīng)用,因此,程序設(shè)計(jì)語言自身的自動(dòng)化勢在必行。 1954年,F(xiàn)ORTRANI語言的問世標(biāo)志著計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語言的誕生。隨后,計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語言如雨后春筍,層出不窮。至今,全世界已經(jīng)出現(xiàn)的計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語言大概有幾千種,但典型的常用語言不過十幾種。計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語言仍在不斷發(fā)展,目前流行的面向?qū)ο蟪绦蛟O(shè)計(jì)語言是對(duì)傳統(tǒng)的面向過程程序設(shè)計(jì)語言的一種挑戰(zhàn)?! ∮?jì)算機(jī)高級(jí)程序設(shè)計(jì)語言獨(dú)立于機(jī)器,比較接近自然語言,因而容易學(xué)習(xí)和掌握,且程序編寫效率高,編寫出的程序易讀、易理解、易修改、易移植?! ?/pre>圖書封面
圖書標(biāo)簽Tags
無評(píng)論、評(píng)分、閱讀與下載
- 還沒讀過(10)
- 勉強(qiáng)可看(752)
- 一般般(128)
- 內(nèi)容豐富(5322)
- 強(qiáng)力推薦(436)