編譯原理及實現, 2/e
薑淑娟、謝紅俠、張辰、劉兵
買這商品的人也買了...
-
$199編譯技術
-
$320$288 -
$505自製編譯器
-
$505深入分析 GCC
-
$768$730 -
$650$585 -
$534$507 -
$888$844 -
$300$270 -
$474$450 -
$750$638 -
$420$378 -
$534$507 -
$620$465 -
$403算法設計與分析——以ACM大學生程序設計競賽在線題庫為例(微課版)
-
$714$678 -
$419$398 -
$336$319 -
$611深入淺出 Windows API 程序設計:編程基礎篇
-
$607機器人動力學與系統控制
-
$764深入淺出 Windows API 程序設計:核心編程篇
-
$780$616 -
$390RISC-V 體系結構編程與實踐
-
$534$507 -
$403$379
相關主題
商品描述
本書介紹編譯理論的基礎及實現方法,強調語言的形式化定義、編譯技術和各種概念及實現過程的具體方法。全書共10章,內容包括引論、形式語言和有限自動機理論、詞法分析、自頂向下的語法分析、自底向上的語法分析、語法制導翻譯與中間代碼生成、運行時的存儲組織與分配、符號表、代碼優化及目標代碼生成。介紹過程以算法為核心,力求簡潔明瞭地反映編譯的基礎知識,為電腦軟件工作者開發大型軟件打下良好的基礎。 本書可作為高等院校電腦專業的本科或專科教材,也可作為碩士研究生及電腦軟件技術人員的參考書。
作者簡介
姜淑娟教授多年來一直從事程序設計語言、編譯方法、軟件工程、軟件測試等教學和科研工作,取得了一定的成果。近年來,在國內外學術刊物和學術會議上發表論文100多篇,其中有多篇被SCI檢索,主編或參編多部教材,完成國家自然科學基金面上項目、江蘇省自然科學基金面上項目、教育部科學技術研究重點項目、江蘇省“333”工程項目各一項,目前主持國家自然科學基金面上項目一項。
目錄大綱
第1章引論
1.1什麼是編譯程序
1.1.1編譯程序與不錯程序設計語言的關係
1.1.2不錯語言源程序的執行過程
1.1.3與編譯器有關的程序
1.2編譯過程與編譯程序的組織結構
1.2.1編譯過程概述
1.2.2編譯程序的組織結構
1.2.3編譯階段的組合
1.3編譯程序的構造與實現
1.3.1如何構造一個編譯程序
1.3.2編譯程序的開發
1.3.3編譯程序的自動構造工具
習題
第2章形式語言和有限自動機理論
2.1文法和語言
2.1.1字母表和符號串
2.1.2文法和語言的形式化定義
2.1.3語法分析樹與文法二義性
2.1.4文法和語言的分類
2.2有限自動機
2.2.1確定的有限自動機(DFA)
2.2.2非確定的有限自動機(NFA)
2.2.3NFA轉換為等價的DFA
2.2.4確定的有限自動機的化簡
習題
第3章詞法分析
3.1詞法分析基本思想
3.1.1詞法分析任務
3.1.2詞法分析方式
3.2單詞的描述工具
3.2.1正規集和正規式
3.2.2正規式與有限自動機的等價性
3.3單詞的識別
3.3.1單詞分類
3.3.2單詞的內部表示
3.3.3單詞的形式化描述
3.4詞法分析程序的設計及實現
3.4.1詞法分析程序的預處理
3.4.2由詞法規則畫出狀態轉換圖
3.4.3單詞對應狀態轉換圖的實現
3.4.4詞法分析中的錯誤處理
3.5詞法分析程序的自動實現
3.5.1Lex介紹
3.5.2Lex語法基礎
3.5.3詞法分析器自動構造
3.5.4Lex應用
習題
第4章自頂向下的語法分析
4.1自頂向下的語法分析方法
4.1.1包含回溯的自頂向下語法分析
4.1.2回溯產生的原因與解決方法
4.2遞歸下降分析法
4.3LL(1)分析法與LL(1)分析器
習題
第5章自底向上的語法分析
5.1自底向上的語法分析方法
5.1.1“移進歸約”分析
5.1.2規範歸約與句柄
5.2LR分析法
5.2.1LR(0)
5.2.2SLR(1)
5.2.3LR(1)
5.2.4LALR(1)
5.3語法分析程序自動生成器YACC
習題
第6章語法制導翻譯與中間代碼生成
6.1兩種翻譯方法簡介
6.2屬性文法
6.2.1綜合屬性
6.2.2繼承屬性
6.3依賴圖
語法制導翻譯
.1S屬性文法與自底向上翻譯
.2L屬性文法與自頂向下翻譯
.3翻譯模式
6.5中間代碼的形式
6.5.1逆波蘭表示法
6.5.2三元式表示法
6.5.3四元式表示法
6.5.4圖表示法
6.6中間代碼生成
6.6.1說明語句的翻譯
6.6.2賦值語句的翻譯
6.6.3賦值語句中的布爾表達式的翻譯
6.控制流語句中的布爾表達式的翻譯
6.6.5控制流語句的翻譯
6.6.6數組元素的翻譯
6.6.7函數調用的翻譯
習題
第7章運行時的存儲組織與分配
7.1概述
7.1.1關於存儲組織
7.1.2函數(或過程)的活動記錄
7.1.3存儲分配策略
7.2靜態存儲分配
7.3基於棧的運行時動態存儲分配
7.3.1簡單棧式存儲分配的實現
7.3.2嵌套過程語言的棧式存儲分配的實現
7.4基於堆的動態存儲分配的實現
7.5參數傳遞
7.5.1傳值
7.5.2傳地址
習題
第8章符號表
8.1符號表的作用
8.2符號表的內容
8.3符號表的組織
8.3.1符號表的數據結構
8.3.2關鍵字域的組織
8.3.3其他域的組織
8.4符號表舉例
8.4.1無序表
8.4.2有序表
8.4.3散列符號表
8.4.4棧式符號表
習題
第9章代碼優化
9.1概述
9.2局部優化
9.2.1基本塊的劃分
9.2.2基本塊的優化
9.2.3基本塊的有向圖表示
9.3循環優化
9.3.1控制流圖
9.3.2基本屬性
9.3.3支配結點和後必經結點
9.3.4循環的查找
9.3.5循環優化
9.4全局優化
9.4.1相關概念及數據流方程
9.4.2可到達定義
9.4.3結構化程序的數據流分析
9.4.4數據流方程的迭代解
9.4.5活躍變量分析
習題
0章目標代碼生成
10.1目標代碼的形式
10.2目標代碼生成的主要問題
10.2.1目標程序
10.2.2指令選擇
10.2.3寄存器分配
10.2.4計算次序選擇
10.3目標機器
10.3.1目標機器的指令系統
10.3.2指令代價
10.4一個簡單的代碼生成器
10.4.1寄存器描述和地址描述
10.4.2代碼生成算法
10.4.3寄存器選擇函數
10.4.4為變址和指針語句產生代碼
10.4.5條件語句
10.5寄存器分配的原則
習題
附錄A一個類C語言的編譯器前後端實現代碼參考
A.1基本文法說明
A.2語義分析對應的文法設計
A.3總體架構
A.4數據結構設計
前端功能模塊具體實現
.1詞法分析關鍵代碼實現
.2語法分析關鍵代碼實現
.3語義分析關鍵代碼實現
.4中間代碼生成
A.6目標代碼(彙編代碼)生成
A.7測試
參考文獻