程序設(shè)計(jì)語(yǔ)言與編譯-語(yǔ)言的設(shè)計(jì)和實(shí)現(xiàn)-(第4版)
定 價(jià):45 元
- 作者:王曉斌
- 出版時(shí)間:2015/3/1
- ISBN:9787121254826
- 出 版 社:電子工業(yè)
- 中圖法分類:TP312
- 頁(yè)碼:332
- 紙張:
- 版次:1
- 開(kāi)本:16開(kāi)
本書(shū)是一本計(jì)算機(jī)專業(yè)的寬口徑教材,新版覆蓋 CCC2001 和 CCC20O2 教程中編程語(yǔ)言(LP)模塊的全部知識(shí)點(diǎn),內(nèi)容涉及語(yǔ)言及其編譯系統(tǒng)的設(shè)計(jì)要素,設(shè)計(jì)思想,設(shè)計(jì)方法,設(shè)計(jì)技術(shù)和設(shè)計(jì)風(fēng)格等知識(shí)。全書(shū)分為上、下篇。上篇,程序設(shè)計(jì)語(yǔ)言的設(shè)計(jì)包括:緒論、數(shù)據(jù)類型、控制結(jié)構(gòu)、程序語(yǔ)言設(shè)計(jì);下篇,程序設(shè)計(jì)語(yǔ)言的實(shí)現(xiàn)(編譯)包括:編譯概述、詞法分析、自上而下的語(yǔ)法分析、自下而上的語(yǔ)法分析、語(yǔ)義分析和中間代碼生成、代碼優(yōu)化和目標(biāo)代碼生成、運(yùn)行時(shí)存儲(chǔ)空間的組織。
上篇 程序設(shè)計(jì)語(yǔ)言的設(shè)計(jì)
第1章 緒論
1.1 引言
1.2 強(qiáng)制式語(yǔ)言
1.2.1 程序設(shè)計(jì)語(yǔ)言的分類
1.2.2 馮 諾依曼體系結(jié)構(gòu)
1.2.3 綁定和綁定時(shí)間
1.2.4 變量
1.2.5 虛擬機(jī)
1.3 程序單元
1.4 程序設(shè)計(jì)語(yǔ)言發(fā)展簡(jiǎn)介
1.4.1 早期的高級(jí)語(yǔ)言
1.4.2 早期語(yǔ)言的發(fā)展階段
1.4.3 概念的集成階段
1.4.4 再一次突破
1.4.5 大量的探索
1.4.6 Ada 語(yǔ)言
1.4.7 第四代語(yǔ)言
1.4.8 網(wǎng)絡(luò)時(shí)代的語(yǔ)言
1.4.9 新一代程序設(shè)計(jì)語(yǔ)言
1.4.10 面向未來(lái)的漢語(yǔ)程序設(shè)計(jì)語(yǔ)言
1.4.11 總結(jié)
習(xí)題1
第2章 數(shù)據(jù)類型
2.1 引言
2.2 內(nèi)部類型
2.3 用戶定義類型
2.3.1 笛卡兒積
2.3.2 有限映像
2.3.3 序列
2.3.4 遞歸
2.3.5 判定或
2.3.6 冪集
2.4 Pascal語(yǔ)言數(shù)據(jù)類型結(jié)構(gòu)
2.4.1 非結(jié)構(gòu)類型
2.4.2 聚合構(gòu)造
2.4.3 指針
2.5 Ada語(yǔ)言數(shù)據(jù)類型結(jié)構(gòu)
2.5.1 標(biāo)量類型
2.5.2 組合類型
2.6 C語(yǔ)言數(shù)據(jù)類型結(jié)構(gòu)
2.6.1 非結(jié)構(gòu)類型
2.6.2 聚合構(gòu)造
2.6.3 指針
2.6.4 空類型
2.7 Java 語(yǔ)言的數(shù)據(jù)類型
2.7.1 內(nèi)部類型
2.7.2 用戶定義類型
2.8 抽象數(shù)據(jù)類型
2.8.1 SIMULA 67 語(yǔ)言的類機(jī)制
2.8.2 CLU語(yǔ)言的抽象數(shù)據(jù)類型
2.8.3 Ada語(yǔ)言的抽象數(shù)據(jù)類型
2.8.4 Modula 2語(yǔ)言的抽象數(shù)據(jù)類型
2.8.5 C ++語(yǔ)言的抽象數(shù)據(jù)類型
2.8.6 Java抽象數(shù)據(jù)類型
2.9 類型檢查
2.10 類型轉(zhuǎn)換
2.11 類型等價(jià)
2.12 實(shí)現(xiàn)模型
2.12.1 內(nèi)部類型和用戶定義的非結(jié)構(gòu)類型實(shí)現(xiàn)模型
2.12.2 結(jié)構(gòu)類型實(shí)現(xiàn)模型
習(xí)題2
第3章 控制結(jié)構(gòu)
3.1 引言
3.2 語(yǔ)句級(jí)控制結(jié)構(gòu)
3.2.1 順序結(jié)構(gòu)
3.2.2 選擇結(jié)構(gòu)
3.2.3 重復(fù)結(jié)構(gòu)
3.2.4 語(yǔ)句級(jí)控制結(jié)構(gòu)分析
3.2.5 用戶定義控制結(jié)構(gòu)
3.3 單元級(jí)控制結(jié)構(gòu)
3.3.1 顯式調(diào)用從屬單元
3.3.2 隱式調(diào)用單元——異常處理
3.3.3 SIMULA 67語(yǔ)言協(xié)同程序
3.3.4 并發(fā)單元
習(xí)題3
第4章 程序語(yǔ)言的設(shè)計(jì)
4.1 語(yǔ)言的定義
4.1.1 語(yǔ)法
4.1.2 語(yǔ)義
4.2 文法
4.2.1 文法的定義
4.2.2 文法的分類
4.2.3 文法產(chǎn)生的語(yǔ)言
4.2.4 語(yǔ)法樹(shù)
4.3 語(yǔ)言的設(shè)計(jì)
4.3.1 表達(dá)式的設(shè)計(jì)
4.3.2 語(yǔ)句的設(shè)計(jì)
4.3.3 程序單元的設(shè)計(jì)
4.3.4 程序的設(shè)計(jì)
4.4 語(yǔ)言設(shè)計(jì)實(shí)例
4.5 一些設(shè)計(jì)準(zhǔn)則
習(xí)題4
下篇 程序設(shè)計(jì)語(yǔ)言的實(shí)現(xiàn)(編譯)
第5章 編譯概述
5.1 引言
5.2 翻譯和編譯
5.3 解釋
5.4 編譯步驟
習(xí)題5
第6章 詞法分析
6.1 詞法分析概述
6.2 單詞符號(hào)的類別
6.3 詞法分析器的輸出形式
6.4 詞法分析器的設(shè)計(jì)
6.5 符號(hào)表
6.5.1 符號(hào)表的組織
6.5.2 常用的符號(hào)表結(jié)構(gòu)
6.6 Lex介紹
6.6.1 Lex原理
6.6.2 Lex進(jìn)階
6.6.3 Lex例子
習(xí)題6
第7章 自上而下的語(yǔ)法分析
7.1 引言
7.2 回溯分析法
7.2.1 回溯的原因
7.2.2 提取公共左因子
7.2.3 消除左遞歸
7.3 遞歸下降分析法
7.3.1 遞歸下降分析器的構(gòu)造
7.3.2 擴(kuò)充的BNF
7.4 預(yù)測(cè)分析法
7.4.1 預(yù)測(cè)分析過(guò)程
7.4.2 預(yù)測(cè)分析表的構(gòu)造
7.4.3 LL(1)文法
7.4.4 非LL(1)文法
習(xí)題7
第8章 自下而上的語(yǔ)法分析
8.1 引言
8.1.1 分析樹(shù)
8.1.2 規(guī)范歸約、短語(yǔ)和句柄
8.2 算符優(yōu)先分析法
8.2.1 算符優(yōu)先文法
8.2.2 算符優(yōu)先分析算法
8.2.3 算符優(yōu)先關(guān)系表的構(gòu)造
8.3 LR分析法
8.3.1 LR分析過(guò)程
8.3.2 活前綴
8.3.3 LR(0)項(xiàng)目集規(guī)范族
8.3.4 LR(0)分析表的構(gòu)造
8.3.5 SLR(1)分析表的構(gòu)造
8.4 Yacc介紹
8.4.1 Yacc原理
8.4.2 Yacc進(jìn)階
8.4.3 Yacc例子
習(xí)題8
第9章 語(yǔ)義分析和中間代碼生成
9.1 語(yǔ)義分析概論
9.1.1 語(yǔ)義分析的任務(wù)
9.1.2 語(yǔ)法制導(dǎo)翻譯
9.2 中間代碼
9.3 語(yǔ)義變量和語(yǔ)義函數(shù)
9.4 說(shuō)明語(yǔ)句的翻譯
9.5 賦值語(yǔ)句的翻譯
9.5.1 只含簡(jiǎn)單變量的賦值語(yǔ)句的翻譯
9.5.2 含數(shù)組元素的賦值語(yǔ)句的翻譯
9.6 控制語(yǔ)句的翻譯
9.6.1 布爾表達(dá)式的翻譯
9.6.2 無(wú)條件轉(zhuǎn)移語(yǔ)句的翻譯
9.6.3 條件語(yǔ)句的翻譯
9.6.4 while語(yǔ)句的翻譯
9.6.5 for語(yǔ)句的翻譯
9.6.6 過(guò)程調(diào)用的翻譯
習(xí)題9
第10章 代碼優(yōu)化和目標(biāo)代碼生成
10.1 局部?jī)?yōu)化
10.1.1 優(yōu)化的定義
10.1.2 基本塊的劃分
10.1.3 程序流圖
10.1.4 基本塊內(nèi)的優(yōu)化
10.2 全局優(yōu)化
10.2.1 循環(huán)的定義
10.2.2 必經(jīng)結(jié)點(diǎn)集
10.2.3 循環(huán)的查找
10.2.4 循環(huán)的優(yōu)化
10.3 并行優(yōu)化
10.3.1 數(shù)據(jù)的依賴關(guān)系分析
10.3.2 向量化代碼生成
10.3.3 反相關(guān)與輸出相關(guān)的消除
10.3.4 標(biāo)量擴(kuò)張
10.3.5 循環(huán)條塊化
10.4 目標(biāo)代碼生成
10.4.1 一個(gè)計(jì)算機(jī)模型
10.4.2 簡(jiǎn)單的代碼生成方法
10.4.3 循環(huán)中的寄存器分配
習(xí)題10
第11章 運(yùn)行時(shí)存儲(chǔ)空間的組織
11.1 程序的存儲(chǔ)空間
11.1.1 代碼空間
11.1.2 數(shù)據(jù)空間
11.1.3 活動(dòng)記錄
11.1.4 變量的存儲(chǔ)分配
11.1.5 存儲(chǔ)分配模式
11.2 靜態(tài)分配
11.3 棧式分配
11.3.1 只含半靜態(tài)變量的棧式分配
11.3.2 半動(dòng)態(tài)變量的棧式分配
11.3.3 非局部環(huán)境
11.3.4 非局部環(huán)境的引用
11.4 參數(shù)傳遞
11.4.1 數(shù)據(jù)參數(shù)傳遞
11.4.2 子程序參數(shù)傳遞
習(xí)題11
第12章 MINI語(yǔ)言編譯器的設(shè)計(jì)與實(shí)現(xiàn)
12.1 MINI語(yǔ)言概述
12.2 MINI編譯器概述
12.3 詞法分析
12.3.1 概述
12.3.2 MINI語(yǔ)言詞法分析程序的實(shí)現(xiàn)
12.3.3 關(guān)鍵字與標(biāo)識(shí)符的識(shí)別
12.3.4 為標(biāo)識(shí)符分配空間
12.4 語(yǔ)法分析
12.4.1 概述
12.4.2 MINI語(yǔ)言的語(yǔ)法
12.4.3 MINI語(yǔ)言語(yǔ)法分析程序的實(shí)現(xiàn)
12.5 語(yǔ)義分析
12.5.1 概述
12.5.2 MINI語(yǔ)言的語(yǔ)義
12.5.3 MINI語(yǔ)言的符號(hào)表
12.5.4 MINI語(yǔ)言語(yǔ)義分析程序的實(shí)現(xiàn)
12.6 運(yùn)行時(shí)環(huán)境
12.6.1 概述
12.6.2 MINI語(yǔ)言的運(yùn)行時(shí)環(huán)境
12.7 代碼生成
12.7.1 概述
12.7.2 目標(biāo)機(jī)器——MINI Machine
12.7.3 MINI代碼生成器的實(shí)現(xiàn)
12.8 代碼優(yōu)化
12.8.1 將臨時(shí)變量放入寄存器
12.8.2 在寄存器中保存變量
12.8.3 優(yōu)化測(cè)試表達(dá)式
12.9 MINI編譯器的使用方法
12.10 進(jìn)一步的工作
第13章 clang/LLVM編譯器平臺(tái)介紹
13.1 發(fā)展背景
13.2 clang架構(gòu)
13.3 靜態(tài)單賦值指令
13.4 代碼轉(zhuǎn)換過(guò)程
13.5 clang與GCC的比較
13.6 clang/LLVM特色
13.7 目錄結(jié)構(gòu)
附錄A 形式語(yǔ)言與自動(dòng)機(jī)簡(jiǎn)介
參考文獻(xiàn)