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