注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)匯編語言/編譯原理現(xiàn)代編譯器的Java實(shí)現(xiàn)(第2版)

現(xiàn)代編譯器的Java實(shí)現(xiàn)(第2版)

現(xiàn)代編譯器的Java實(shí)現(xiàn)(第2版)

定 價(jià):¥35.00

作 者: (美)Andrew W.Appel等著;陳明等譯;陳明譯
出版社: 電子工業(yè)出版社
叢編項(xiàng): 國外計(jì)算機(jī)科學(xué)教材系列
標(biāo) 簽: Java

ISBN: 9787121002700 出版時(shí)間: 2004-09-01 包裝: 平裝
開本: 26cm 頁數(shù): 350 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書是一本編譯技術(shù)的教程,其特點(diǎn)是注重實(shí)現(xiàn)。從學(xué)習(xí)編譯器的結(jié)構(gòu)來掌握理論,并通過編程技術(shù)將編譯理論融合于實(shí)踐中。本書主要內(nèi)容分為兩部分,第一部分為編譯基礎(chǔ)(第1章至第12章),主要包括:詞法分析、語法分析、抽象語法、語義分析、活動(dòng)記錄、翻譯成中間代碼、基本塊和軌跡、指令選擇、活性分析、寄存器分配、 使之成為整體。第二部分為高級(jí)課題(第13章至第21章),主要包括:無用信息收集、面向?qū)ο笳Z言、函數(shù)式編程語言、多態(tài)類型、數(shù)據(jù)流分析、循環(huán)優(yōu)化、靜態(tài)單賦值表、流水線和調(diào)度、分級(jí)存儲(chǔ)器體系等。本書可作為高等院校編譯技術(shù)課程的教材、教師參考書以及編譯技術(shù)研究人員的參考資料。

作者簡(jiǎn)介

  Andrew W.Appel,普林斯頓大學(xué)計(jì)算機(jī)科學(xué)系教授,從事關(guān)于編譯器、函數(shù)式編程語言、運(yùn)行時(shí)間系統(tǒng)和無用信息收集、類型系統(tǒng)、計(jì)算機(jī)安全等方面的研究,并發(fā)表了多篇相關(guān)的論文;他還是“Compiling with Continuayions”一書的作者,以及New Jersey項(xiàng)目ML標(biāo)準(zhǔn)的奠基者和設(shè)計(jì)者。由于“在編程語言和編譯器領(lǐng)域的重大研究貢獻(xiàn)”,以及他為ACM會(huì)刊“ACM Transactions on Programming Languages and Systems”所做的工作,1998年,Appel被選為ACM的會(huì)士。陳明,石油大學(xué)(北京)計(jì)算機(jī)科學(xué)與技術(shù)系系主任、教授、博士生導(dǎo)師,南開大學(xué)、保肥工業(yè)大學(xué)等院校兼職教授。

圖書目錄

第一部分 編譯基礎(chǔ)
第1章 概述
1.1 模塊及接口
1.1.1 階段的描述
1.2 工具和軟件
1.3 樹型語言的數(shù)據(jù)結(jié)構(gòu)
程序設(shè)計(jì):直線程序解釋器
習(xí)題
第2章 詞法分析
2.1 詞法記號(hào)
2.2 正則表達(dá)式
2.3 有限自動(dòng)機(jī)
2.3.1 識(shí)別最長的匹配
2.4 非確定有限自動(dòng)機(jī)
2.4.1 正規(guī)文法轉(zhuǎn)換為NFA
2.4.2 NFA轉(zhuǎn)換為DFA
2.5 詞法分析生成器
2.5.1 JAVACC
2.5.2 SableCC
程序設(shè)計(jì):詞法分析
進(jìn)一步閱讀
習(xí)題
第3章 語法分析
3.1 上下文無關(guān)文法
3.1.1 推導(dǎo)
3.1.2 分析樹
3.1.3 二義性文法
3.1.4 文件結(jié)束符
3.2 預(yù)測(cè)分析
3.2.1 FIRST和FOLLOW集
3.2.2 構(gòu)造一個(gè)預(yù)測(cè)分析器
3.2.3 消除左遞歸
3.2.4 左因子
3.2.5 出錯(cuò)恢復(fù)
3.3 LR分析
3.3.1 LR分析器
3.3.2 LR(0)分析器生成器
3.3.3 SLR分析器生成器
3.3.4 LR(1)項(xiàng)目和LR(1)分析表
3.3.5 LALR(1)分析表
3.3.6 文法類型的層次結(jié)構(gòu)
3.3.7 二義性文法的LR分析
3.4 使用分析器生成器
3.4.1 JAVACC
3.4.2 SableCC
3.4.3 算符優(yōu)先分析法
3.4.4 語法和語義
3.5 出錯(cuò)恢復(fù)
3.5.1 用error符號(hào)恢復(fù)
3.5.2 全局出錯(cuò)修復(fù)
程序設(shè)計(jì):實(shí)現(xiàn)分析器
進(jìn)一步閱讀
習(xí)題
第4章 抽象語法
4.1 語義分析
4.1.1遞歸下降
4.1.2 自動(dòng)生成分析器
4.2 抽象分析樹
4.2.1位置
4.3 訪問者
4.3.1 MiniJava的抽象語法
程序設(shè)計(jì):抽象語法
進(jìn)一步閱讀
習(xí)題
第5章 語義分析
5.1 符號(hào)表
5.1.1 多重符號(hào)表
5.1.2 高效率的命令符號(hào)表
5.1.3 高效率的功能符號(hào)表
5.1.4 符號(hào)
5.2 MiniJava的類型檢查
5.2.1 錯(cuò)誤處理
程序設(shè)計(jì):類型檢查
習(xí)題
第6章 活動(dòng)紀(jì)錄
6.1 堆棧幀
6.1.1 幀指針
6.1.2 寄存器
6.1.3 參數(shù)傳遞
6.1.4 返回地址
6.1.5 常駐幀變量
6.1.6 靜態(tài)連接
6.2 MiniJava語言編譯器中的幀
6.2.1 幀的表示
6.2.2 局部變量
6.2.3 臨時(shí)(局部)變量和標(biāo)號(hào)
6.2.4 靜態(tài)連接的管理
程序設(shè)計(jì):幀
進(jìn)一步閱讀
習(xí)題
第7章 翻譯成中間代碼
7.1 中間樹
7.2 樹的翻譯
7.2.1 表達(dá)式的類型
7.2.2 簡(jiǎn)單變量
7.2.3 數(shù)組變量
7.2.4 結(jié)構(gòu)化的L-值
7.2.5 下標(biāo)和域選擇
7.2.6 關(guān)于安全性
7.2.7 算術(shù)運(yùn)算
7.2.8 條件
7.2.9 字符串
7.2.10 記錄和數(shù)組的創(chuàng)建
7.2.11 while循環(huán)
7.2.12 for循環(huán)
7.2.13 函數(shù)調(diào)用
7.2.14 靜態(tài)連接
7.3 聲明
7.3.1 變量定義
7.3.2 函數(shù)定義
7.3.3 段
7.3.4 類和對(duì)象
程序設(shè)計(jì):翻譯為樹
習(xí)題
第8章 基本塊和軌跡
8.1 規(guī)范樹
8.1.1 ESEO的翻譯
8.1.2 常用重寫規(guī)則
8.1.3 將CALL移至頂部
8.1.4 語句的線性表
8.2 時(shí)間條件分支
8.2.1 基本塊
8.2.2 軌跡
8.2.3 完成
8.2.4 最佳軌跡
進(jìn)一步閱讀
習(xí)題
第9章指令選擇
9.1指令選擇的算法
9.1.1 maximal munch算法
9.1.2 動(dòng)態(tài)編程
9.1.3 樹的文法規(guī)則
9.1.4 快速匹配
9.1.5表示算法的效率
9.2 CISC機(jī)
9.3 MiniJava編譯器中的指令選擇
9.3.1 抽象的匯編語言指令
9.3.2 生成匯編指令
9.3.3 過程調(diào)用
9.3.4 如果不存在幀指針
程序設(shè)計(jì):指令選擇
進(jìn)一步閱讀
習(xí)題
第10章 活性分析
10.1 數(shù)據(jù)流的解
10.1.1 活性的計(jì)算
10.1.2 集合的表示
10.1.3 時(shí)間復(fù)雜度
10.1.4 最少的確定點(diǎn)
10.1.5 靜態(tài)與動(dòng)態(tài)活性
10.1.6 干擾圖
10.2 MiniJava編譯器中的活性分析
10.2.1 圖
10.2.2 控制流圖
10.2.3 活性分析
程序設(shè)計(jì):構(gòu)造流圖
程序設(shè)計(jì):活性
習(xí)題
第11章 寄存器分配
11.1 簡(jiǎn)化著色
11.1.1 舉例
11.2結(jié)合
11.2.1 溢出
11.3 預(yù)著色節(jié)點(diǎn)
11.3.1 機(jī)器寄存器臨時(shí)變量的復(fù)制
11.3.2 調(diào)用保存寄存器和被調(diào)用保存寄存器
11.3.3 預(yù)著色節(jié)點(diǎn)的例子
11.4 圖著色實(shí)現(xiàn)
11.4.1 數(shù)據(jù)結(jié)構(gòu)
11.4.2 不變量
11.4.3 程序代碼
11.5 樹的寄存器分配
程序設(shè)計(jì):圖著色
進(jìn)一步閱讀
習(xí)題
第12章 使之成為整體
程序設(shè)計(jì)進(jìn)入/退出過程
程序設(shè)計(jì):使程序運(yùn)行
第二部分 高級(jí)課題
第13章 無用信息收集
13.1 標(biāo)記一清除收集機(jī)制
13.2 引用計(jì)數(shù)
13.3 復(fù)制收集
13.4 世代收集
13.5 增量收集
13.6 Baker算法
13.7 編譯器接口
13.7.1 快速分配
13.7.2 數(shù)據(jù)分布描述
13.7.3 派生指針
程序設(shè)計(jì):描述符
程序設(shè)計(jì):無用信息收集
進(jìn)一步閱讀
習(xí)題
第14章 面向?qū)ο笳Z言
14.1 類擴(kuò)展
14.2 數(shù)據(jù)字段的單繼承
14.2.1 方法
14.3 多繼承
14.4 類成員測(cè)試
14.5 私有字段成員和方法
14.6 無類語言
14.7 優(yōu)化面向?qū)ο蟪绦?br />程序設(shè)計(jì):帶類擴(kuò)展的MiniJava
進(jìn)一步閱讀
習(xí)題
第15章 函數(shù)式編程語言
15.1 一種簡(jiǎn)單的函數(shù)式語言
15.2 閉包
15.2.1 堆分配激活記錄
15.3 恒變量
15.3.1 基于連續(xù)的I/O
15.3.2 語言變換
15.3.3 純函數(shù)式語言的優(yōu)化
15.4 內(nèi)部擴(kuò)展
15.5 閉包轉(zhuǎn)換
15.6 有效尾部遞歸
15.7 惰性評(píng)估
15.7.1 按名調(diào)用評(píng)估
15.7.2 按需調(diào)用
15.7.3 一個(gè)惰性程序的計(jì)算
15.7.4 推高不變量
15.7.5 惰性函數(shù)式程序的優(yōu)化
15.7.6 嚴(yán)格性分析
進(jìn)一步閱讀
程序設(shè)計(jì):編譯函數(shù)式語言
習(xí)題
第16章 多態(tài)類型
16.1 參數(shù)多態(tài)
16.2 多態(tài)類型檢查
16.3 多態(tài)程序的翻譯
16.3.1 指針、整型和包裝
16.4 靜態(tài)重載的解決方法
進(jìn)一步閱讀
習(xí)題
第17章 數(shù)據(jù)流分析
17.1 流分析的中間表示
17.1.1 四元組
17.2 多種的數(shù)據(jù)流分析
17.2.1 到達(dá)定義
17.2.2 可用表達(dá)式
17.2.3 到達(dá)表達(dá)式
17.2.4 活性分析
17.3 使用數(shù)據(jù)流分析的變換
17.3.1 公用子表達(dá)式消除
17.3.2 常量傳播
17.3.3 復(fù)制傳播
17.3.4 死代碼消除
17.4 加快數(shù)據(jù)流分析
17.4.1 位向量
17.4.2 基本塊
17.4.3 節(jié)點(diǎn)排序
17.4.4 use-def和def-use鏈
17.4.5 work-list算法
17.4.6 增量式數(shù)據(jù)流分析
17.5 別名分析
17.5.1 基于類型的別名分析
17.5.2 基于流的別名分析
17.5.3 使用may-alias信息
17.5.4 嚴(yán)格純函數(shù)式語言中的別名分析
進(jìn)一步閱讀
習(xí)題
第18章 循環(huán)優(yōu)化
18.1 必經(jīng)節(jié)點(diǎn)
18.1.1 尋找必經(jīng)節(jié)點(diǎn)的算法
18.1.2 直接必經(jīng)節(jié)點(diǎn)
18.1.3 循環(huán)
18.1.4 循環(huán)前置首部
18.2 循環(huán)不變量的計(jì)算
18.2.1 提升
18.3 歸納變量
18.3.1 歸納變量檢查
18.3.2 強(qiáng)度削減
18.3.3 消除
18.3.4 重寫比較
18.4 數(shù)組邊界檢查
18.5 循環(huán)展開
進(jìn)一步閱讀
習(xí)題
第19章 靜態(tài)單賦值表
19.1 轉(zhuǎn)化為SSA表
19.1.1 插入∮-function的準(zhǔn)則
19.1.2 必經(jīng)前端
19.1.3 插入∮-function
19.1.4 變量重命名
19.1.5 邊分離
19.2 必經(jīng)節(jié)點(diǎn)樹的有效計(jì)算
19.2.1 深度優(yōu)先生成(spanning)樹
19.2.2 半必經(jīng)節(jié)點(diǎn)
19.2.3 Lengauer-Tarjan算法
19.3 采用SSA優(yōu)化算法
19.3.1 消除死代碼
19.3.2 簡(jiǎn)單常量傳播
19.3.3 條件常量復(fù)制
19.3.4 保存必經(jīng)性質(zhì)
19.4 數(shù)組,指針和存儲(chǔ)
19.4.1 存儲(chǔ)相關(guān)
19.5 控制相關(guān)圖
19.5.1 積極的死代碼消除
19.6 從SSA表后的轉(zhuǎn)換
19.6.1 關(guān)于SSA的活性的分析
19.7 函數(shù)式中介表
進(jìn)一步閱讀
習(xí)題
第20章 流水線和調(diào)度
20.1 不受資源限制的循環(huán)調(diào)度
20.2 資源限制循環(huán)流水線
20.2.1 模調(diào)度
20.2.2 發(fā)現(xiàn)最小啟動(dòng)間隔
20.2.3 其他控制流
20.2.4 編譯器應(yīng)該調(diào)度指令嗎
20.3 分支預(yù)測(cè)
20.3.1 靜態(tài)轉(zhuǎn)移預(yù)測(cè)
20.3.2 編譯器應(yīng)該預(yù)測(cè)分支轉(zhuǎn)移嗎?
進(jìn)一步閱讀
習(xí)題
第21章 分級(jí)存儲(chǔ)器體系
21.1 高速緩沖存儲(chǔ)器結(jié)構(gòu)
21.2 cache塊的排列
21.2.1 指令cache的對(duì)齊
21.3 預(yù)取指令
21.4 循環(huán)交換
21.5 分塊
21.6 無用信息收集和分級(jí)存儲(chǔ)器體系
進(jìn)一步閱讀
習(xí)題
附錄 MiniJava語言參考手冊(cè)
參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)