現代編譯原理 2024 pdf epub mobi 電子書 下載
☆☆☆☆☆
簡體網頁||
繁體網頁
現代編譯原理 pdf epub mobi 著者簡介
現代編譯原理 pdf epub mobi 圖書描述
《現代編譯原理:C語言描述》全麵講述瞭現代編譯器的結構、編譯算法和實現方法,是Andrew w.Apple的“虎書”——Modern Compiler Implementation——“紅、藍、綠”三序列之一。這三本書的內容基本相同。但是使用不同的語言來實現書中給齣的一個編譯器。本書使用的是更適閤廣大讀者的c語言,而另外兩本書分彆采用ML語言和Java語言。本書的另一個特點是增加瞭一些其他編譯原理教科書沒有涉及的內容。前端增加瞭麵嚮對象的程序設計語言、函數式程序設計語言等現代語言的編譯實現方法,後端增加瞭針對現代計算機體係結構特徵的一些比較成熟的優化方法。這部分內容展現瞭現代商業編譯器需解決的一些關鍵問題,開拓瞭學生的視野,為學生未來進行更深入的研究奠定瞭基礎。
《現代編譯原理:C語言描述》全麵講述瞭現代編譯器的各個組成部分,包括詞法分析、語法分析、抽象語法、語義檢查、中間代碼錶示、指令選擇、數據流分析、寄存器分配以及運行時係統等。全書分成兩部分,第一部分是編譯的基礎知識,適用於第一門編譯原理課程(一個學期);第二部分是高級主題,包括麵嚮對象語言和函數語言、垃圾收集、循環優化、ssA(靜態單賦值)形式、循環調度、存儲結構優化等,適閤於後續課程或研究生教學。書中專門為學生提供瞭一個用C語言編寫的實習項目,包括前端和後端設計,學生可以在一學期內創建一個功能完整的編譯器。
現代編譯原理 2024 pdf epub mobi 電子書 下載
現代編譯原理 pdf epub mobi 圖書目錄
第一部分 編譯基本原理
第1章 緒論
1.1 模塊與接口
1.2 工具和軟件
1.3 樹語言的數據結構
程序設計:直綫式程序解釋器
推薦閱讀
習題
第2章 詞法分析
2.1 詞法單詞
2.2 正則錶達式
2.3 有限自動機
2.4 非確定有限自動機
2.4.1 將正則錶達式轉換為NFA
2.4.2 將NFA轉換為DFA
2.5 Lex:詞法分析器的生成器
程序設計:詞法分析
推薦閱讀
習題
第3章 語法分析
3.1 上下文無關文法
3.1.1 推導
3.1.2 語法分析樹
3.1.3 二義性文法
3.1.4 文件結束符
3.2 預測分析
3.2.1 FIRST集閤和FOLLOW集閤
3.2.2 構造一個預測分析器
3.2.3 消除左遞歸
3.2.4 提取左因子
3.2.5 錯誤恢復
3.3 LR分析
3.3.1 LR分析引擎
3.3.2 LR(0)分析器生成器
3.3.3 SLR分析器的生成
3.3.4 LR(1)項和LR(1)分析錶
3.3.5 LALR(1)分析錶
3.3.6 各類文法的層次
3.3.7 二義性文法的LR分析
3.4 使用分析器的生成器
3.4.1 衝突
3.4.2 優先級指導
3.4.3 語法和語義
3.5 錯誤恢復
3.5.1 用error符號恢復
3.5.2 全局錯誤修復
程序設計:語法分析
推薦閱讀
習題
第4章 抽象語法
4.1 語義動作
4.1.1 遞歸下降
4.1.2 Yacc生成的分析器
4.1.3 語義動作的解釋器
4.2 抽象語法分析樹
4.2.1 位置
4.2.2 Tiger的抽象語法
程序設計:抽象語法
推薦閱讀
習題
第5章 語義分析
5.1 符號錶
5.1.1 多個符號錶
5.1.2 高效的命令式風格符號錶
5.1.3 高效的函數式符號錶
5.1.4 Tiger編譯器的符號
5.1.5 函數式風格的符號錶
5.2 Tiger編譯器的綁定
5.3 錶達式的類型檢查
5.4 聲明的類型檢查
5.4.1 變量聲明
5.4.2 類型聲明
5.4.3 函數聲明
5.4.4 遞歸聲明
程序設計:類型檢查
習題
第6章 活動記錄
6.1 棧幀
6.1.1 幀指針
6.1.2 寄存器
6.1.3 參數傳遞
6.1.4 返迴地址
6.1.5 棧幀內的變量
6.1.6 靜態鏈
6.2 Tiger編譯器的棧幀
6.2.1 棧幀描述的錶示
6.2.2 局部變量
6.2.3 計算逃逸變量
6.2.4 臨時變量和標號
6.2.5 兩層抽象
6.2.6 管理靜態鏈
6.2.7 追蹤層次信息
程序設計:棧幀
推薦閱讀
習題
第7章 翻譯成中間代碼
7.1 中間錶示樹
7.2 翻譯為樹中間語言
7.2.1 錶達式的種類
7.2.2 簡單變量
7.2.3 追隨靜態鏈
7.2.4 數組變量
7.2.5 結構化的左值
7.2.6 下標和域選擇
7.2.7 關於安全性的勸告
7.2.8 算術操作
7.2.9 條件錶達式
7.2.10 字符串
7.2.11 記錄和數組的創建
7.2.12 while循環
7.2.13 for循環
7.2.14 函數調用
7.3 聲明
7.3.1 變量定義
7.3.2 函數定義
7.3.3 片段
程序設計:翻譯成樹
習題
第8章 基本塊和軌跡
8.1 規範樹
8.1.1 ESEQ的轉換
8.1.2 一般重寫規則
8.1.3 將CALL移到頂層
8.1.4 綫性語句錶
8.2 處理條件分支
8.2.1 基本塊
8.2.2 軌跡
8.2.3 完善
8.2.4 最優軌跡
推薦閱讀
習題
第9章 指令選擇
9.1 指令選擇算法
9.1.1 Maximal Munch算法
9.1.2 動態規劃
9.1.3 樹文法
9.1.4 快速匹配
9.1.5 覆蓋算法的效率
9.2 CISC機器
9.3 Tiger編譯器的指令選擇
9.3.1 抽象的匯編語言指令
9.3.2 生成匯編指令
9.3.3 過程調用
9.3.4 無幀指針的情形
程序設計:指令選擇
推薦閱讀
習題
第10章 活躍分析
10.1 數據流方程的解
10.1.1 活躍性計算
10.1.2 集閤的錶示
10.1.3 時間復雜度
10.1.4 最小不動點
10.1.5 靜態活躍性與動態活躍性
10.1.6 衝突圖
10.2 Tiger編譯器的活躍分析
10.2.1 圖
10.2.2 控製流圖
10.2.3 活躍分析
程序設計:構造流圖
程序設計:活躍分析模塊
習題
第11章 寄存器分配
11.1 通過簡化進行著色
11.2 閤並
11.3 預著色的結點
11.3.1 機器寄存器的臨時副本
11.3.2 調用者保護的寄存器和被調用者保護的寄存器
11.3.3 含預著色結點的例子
11.4 圖著色的實現
11.4.1 傳送指令工作錶的管理
11.4.2 數據結構
11.4.3 程序代碼
11.5 針對樹的寄存器分配
程序設計:圖著色
推薦閱讀
習題
第12章 整閤為一體
程序設計:過程入口/齣口
程序設計:創建一個可運行的編譯器
第二部分 高級主題
第13章 垃圾收集
13.1 標記-清掃式收集
13.2 引用計數
13.3 復製式收集
13.4 分代收集
13.5 增量式收集
13.6 Baker算法
13.7 編譯器接口
13.7.1 快速分配
13.7.2 數據布局的描述
13.7.3 導齣指針
程序設計:描述字
程序設計:垃圾收集
推薦閱讀
習題
第14章 麵嚮對象的語言
14.1 類
14.2 數據域的單繼承性
14.3 多繼承性
14.4 測試類成員關係
14.5 私有域和私有方法
14.6 無類語言
14.7 嚮對象程序的優化
程序設計:OBJECT Tiger
推薦閱讀
習題
第15章 函數式程序設計語言
15.1 一個簡單的函數式語言
15.2 閉包
15.3 不變的變量
15.3.1 基於延續的……I/O226
15.3.2 語言上的變化
15.3.3 純函數式語言的優化
15.4 內聯擴展
15.5 閉包變換
15.6 高效的尾遞歸
15.7 懶惰計算
15.7.1 傳名調用計算
15.7.2 按需調用
15.7.3 懶惰程序的計算
15.7.4 懶惰函數式程序的優化
15.7.5 嚴格性分析
推薦閱讀
程序設計:編譯函數式語言
習題
第16章 多態類型
16.1 參數多態性
16.1.1 顯式帶類型的多態語言
16.1.2 多態類型的檢查
16.2 類型推論
16.2.1 一個隱式類型的多態語言
16.2.2 類型推論算法
16.2.3 遞歸的數據類型
16.2.4 Hindley Milner類型的能力
16.3 多態變量的錶示
16.3.1 多態函數的擴展
16.3.2 完全的裝箱轉換
16.3.3 基於強製的錶示分析
16.3.4 將類型作為運行時參數傳遞
16.4 靜態重載的解決方法
推薦閱讀
習題
第17章 數據流分析
17.1 流分析使用的中間錶示
17.2 各種數據流分析
17.2.1 到達定值
17.2.2 可用錶達式
17.2.3 到達錶達式
17.2.4 活躍分析
17.3 使用數據流分析結果的幾種轉換
17.3.1 公共子錶達式刪除
17.3.2 常數傳播
17.3.3 復寫傳播
17.3.4 死代碼刪除
17.4 加快數據流分析
17.4.1 位嚮量
17.4.2 基本塊
17.4.3 結點排序
17.4.4 使用-定值鏈和定值-使用鏈
17.4.5 工作錶算法
17.4.6 增量式數據流分析
17.5 彆名分析
17.5.1 基於類型的彆名分析
17.5.2 基於流的彆名分析
17.5.3 使用可能彆名信息
17.5.4 嚴格的純函數式語言中的彆名分析
推薦閱讀
習題
第18章 循環優化
18.1 必經結點
18.1.1 尋找必經結點的算法
18.1.2 直接必經結點
18.1.3 循環
18.1.4 循環前置結點
18.2 循環不變量計算
18.3 歸納變量
18.3.1 發現歸納變量
18.3.2 強度削弱
18.3.3 刪除
18.3.4 重寫比較
18.4 數組邊界檢查
18.5 循環展開
推薦閱讀
習題
第19章 靜態單賦值形式
19.1 轉化為SSA形式
19.1.1 插入Φ函數的標準
19.1.2 必經結點邊界
19.1.3 插入Φ函數
19.1.4 變量重命名
19.1.5 邊分割
19.2 必經結點樹的高效計算
19.2.1 深度優先生成樹
19.2.2 半必經結點
19.2.3 Lengauer Tarjan算法
19.3 使用SSA的優化算法
19.3.1 死代碼刪除
19.3.2 簡單的常數傳播
19.3.3 條件常數傳播
19.3.4 保持必經結點性質
19.4 數組、指針和存儲器
19.5 控製依賴圖
19.6 從SSA形式轉變迴來
19.7 函數式中間形式
推薦閱讀
習題
第20章 流水和調度
20.1 沒有資源約束時的循環調度
20.2 有資源約束的循環流水
20.2.1 模調度
20.2.2 尋找最小的啓動間距
20.2.3 其他控製流
20.2.4 編譯器應該調度指令嗎
20.3 分支預測
20.3.1 靜態分支預測
20.3.2 編譯器應該預測分支嗎
推薦閱讀
習題
第21章 存儲層次
21.1 cache的組織結構
21.2 cache塊對齊
21.3 預取
21.4 循環交換
21.5 分塊
21.6 垃圾收集和存儲層次
推薦閱讀
習題
附錄 Tiger語言參考手冊
參考文獻
索引
· · · · · · (
收起)
下載链接在页面底部
點擊這裡下載
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
發表於2024-11-21
現代編譯原理 2024 pdf epub mobi 電子書 下載
現代編譯原理 2024 pdf epub mobi 電子書 下載
現代編譯原理 2024 pdf epub mobi 電子書 下載
喜欢 現代編譯原理 電子書 的读者还喜欢
現代編譯原理 pdf epub mobi 讀後感
評分
☆☆☆☆☆
本書和龍書都全篇閱讀完過,與龍書相比相差太遠,這是一本編譯方麵的入門書,但你最好彆信,你需要懂編譯方麵的原理,因為這本書偏重實踐,很多地方原理不講或者簡單地一筆帶過,點到即止,沒看過龍書,你甚至不知道它在講什麼。
評分
☆☆☆☆☆
翻瞭這麼多本書,這是我看過的唯一一本講具體怎麼構建一個編譯器的書。同時這本書所構建的編譯器就像作者說的那樣,簡單但是並不平庸,擁有很多挺先進的特性。也能算是一個優化編譯器。 但是要跟著這本書做下來還是有一定難度的,需要紮實的C語言功底。
評分
☆☆☆☆☆
評分
☆☆☆☆☆
本書和龍書都全篇閱讀完過,與龍書相比相差太遠,這是一本編譯方麵的入門書,但你最好彆信,你需要懂編譯方麵的原理,因為這本書偏重實踐,很多地方原理不講或者簡單地一筆帶過,點到即止,沒看過龍書,你甚至不知道它在講什麼。
評分
☆☆☆☆☆
翻瞭這麼多本書,這是我看過的唯一一本講具體怎麼構建一個編譯器的書。同時這本書所構建的編譯器就像作者說的那樣,簡單但是並不平庸,擁有很多挺先進的特性。也能算是一個優化編譯器。 但是要跟著這本書做下來還是有一定難度的,需要紮實的C語言功底。
類似圖書 點擊查看全場最低價
出版者:人民郵電齣版社
作者:(美)安佩爾
出品人:圖靈教育
頁數:385
譯者:趙剋佳
出版時間:2006-4
價格:45.00元
裝幀:簡裝本
isbn號碼:9787115145529
叢書系列:圖靈計算機科學叢書
圖書標籤:
編譯原理
虎書
C
計算機
計算機科學
編譯器
compiler
編譯理論
現代編譯原理 2024 pdf epub mobi 電子書 下載
現代編譯原理 pdf epub mobi 用戶評價
評分
☆☆☆☆☆
和龍書一樣糟糕,關鍵純理論學習還比不上龍書。拿這本來實踐,真心是噩夢。
評分
☆☆☆☆☆
需要練習……
評分
☆☆☆☆☆
教材。讀瞭前半本。
評分
☆☆☆☆☆
最後還是自己手寫瞭一個LR(1)...好痛苦。。不過翻譯的時候更痛苦。。
評分
☆☆☆☆☆
教材。。
現代編譯原理 2024 pdf epub mobi 電子書 下載