編譯原理及實踐教程(第3版)

編譯原理及實踐教程(第3版)

《編譯原理及實踐教程(第3版)》是2019年4月清華大學出版社出版的圖書,作者是黃賢英、王柯柯、曹瓊、魏星。

基本介紹

  • 中文名:編譯原理及實踐教程(第3版)
  • 作者:黃賢英、王柯柯、曹瓊、魏星
  • 出版社:清華大學出版社
  • 出版時間:2019年4月
  • 定價:49.8 元
  • ISBN:9787302520078
內容簡介,圖書目錄,

內容簡介

本書主要講述設計和構造編譯程式的一般原理、基本設計方法和主要實現技術,以高級語言程式編譯的6個主要階段——詞法分析、語法分析、語義分析、中間代碼生成、代碼最佳化和目標代碼生成為線索,闡述了各階段的主要功能、原理、設計技術和實現方法。
本書適合作為工程實踐型、套用型本科院校計算機相關專業的教材,也適合作為工程技術人員的參考書。

圖書目錄

第1章編譯概述
1.1程式設計語言及翻譯程式
1.1.1程式設計語言的發展
1.1.2翻譯程式大家族
1.1.3高級語言的運行方式
1.2編譯系統
1.2.1高級語言編譯流程
1.2.2高級語言編譯實例
1.3編譯過程和編譯程式的結構
1.3.1編譯過程概述
1.3.2編譯程式的結構
1.3.3編譯階段的組合
1.4編譯程式的構造方法
1.5認識Sample語言
1.5.1高級語言的構成成分
1.5.2程式的結構
1.5.3Sample語言規範
1.5.4符合Sample語言規範的源程式舉例
1.6編譯程式的發展及編譯技術的套用
1.6.1編譯程式的發展
1.6.2編譯技術的套用
1.6.3為什麼要學習編譯原理及其構造技術
1.7本書結構
1.8小結
1.9習題
第2章詞法分析
2.1詞法分析概述
2.2高級語言中的單詞
2.2.1單詞的分類
2.2.2單詞的種別碼
2.3單詞的識別
2.3.2單詞識別程式
2.3.3超前搜尋技術和雙界符的識別
2.3.4數值型常量的識別與狀態轉換圖的合併
2.4詞法分析器的設計
2.5正則表達式與有窮自動機
2.5.1符號和符號串
2.5.2集合的運算及語言的定義
2.5.3正則表達式
2.5.4有窮自動機
2.5.5正則表達式與有窮自動機的等價性
2.6詞法分析器的自動生成工具
2.6.1Lex概述
2.6.2Lex源檔案的書寫
2.6.3Lex的工作原理
2.6.4Lex使用中的一些注意事項
2.6.5使用Lex自動生成詞法分析器
2.7詞法分析中的錯誤處理
2.8小結
2.9習題
第3章語法分析
3.1語法分析概述
3.2上下文無關文法
3.2.1文法的定義
3.2.2推導
3.2.3文法產生的語言
3.2.4語法樹
3.2.5二義文法
3.2.6消除二義性
*3.2.7Sample語言文法描述
3.3自上而下的語法分析
3.3.1自上而下分析方法中的問題探究
3.3.2LL(1)文法
3.3.3遞歸下降分析方法
3.3.4預測分析方法
3.4自下而上的語法分析
3.4.1自下而上分析方法概述
3.4.2算符優先分析
3.4.3LR分析法
3.5語法分析器的自動生成工具YACC
3.5.1YACC概述
3.5.2YACC源檔案的格式
3.5.3YACC的翻譯規則
3.5.4YACC的輔助程式
3.6語法分析中的錯誤處理
3.6.1語法分析中的錯誤處理的一般原則
3.6.2自上而下語法分析的錯誤處理
3.6.3自下而上語法分析的錯誤處理
3.7小結
3.8習題
第4章語義分析
4.1語義分析概述
4.2Sample語言的語義描述
4.2.1程式的語義
4.2.2函式的語義
4.2.3各種名字的聲明和使用的語義
4.2.4各種語句的語義
4.2.5表達式的語義
4.3符號表管理技術
4.3.1符號表概述
4.3.2符號表的組織方式
4.3.3符號表的操作
4.4靜態語義檢查
4.4.1靜態語義檢查概述
4.4.2聲明與定義語義檢查
4.4.3表達式語義檢查
4.4.4語句語義檢查
4.5小結
4.6習題
第5章中間代碼生成
5.1中間代碼生成概述
5.2中間代碼
5.2.1逆波蘭式
5.2.2三地址代碼
*5.2.3抽象語法樹
5.2.4有向無環圖表示
5.3屬性文法和語法制導的翻譯
5.3.1屬性文法
5.3.2屬性的計算
5.3.3屬性的計算順序
5.3.4語法制導翻譯的實現方法
5.4常見語句的語法制導的翻譯
5.4.1聲明語句的語義處理
5.4.2表達式的翻譯
5.4.3布爾表達式的翻譯
5.4.4控制語句的翻譯
*5.4.5函式定義及函式調用的翻譯
5.5中間代碼生成器的設計
5.6小結
5.7習題
第6章運行時存儲組織
6.1存儲組織
6.1.1程式執行時存儲器的劃分
6.1.2活動記錄
6.1.3局部數據布局
6.2函式調用
6.2.1源程式中的函式
6.2.2函式執行時的活動
6.2.3名字的作用域
6.2.4參數的傳遞
6.2.5名字的綁定
6.3存儲分配策略
6.3.1靜態存儲分配
6.3.2棧式存儲分配
6.3.3堆式存儲分配
*6.4垃圾回收機制
6.4.1可達性
6.4.2引用計數回收器
6.4.3標記清掃回收器
6.4.4複製回收器
6.5C語言編譯程式運行時存儲實例
6.5.1記憶體的劃分及程式執行的總體情況
6.5.2案例: 程式運行時記憶體的變化
6.6小結
6.7習題
第7章代碼最佳化
7.1代碼最佳化概述
7.1.1代碼最佳化的地位
7.1.2基本塊的概念及流圖
7.2局部最佳化
7.2.1刪除公共子表達式
7.2.2複寫傳播
7.2.3刪除無用代碼
7.2.4代數恆等變換
7.2.5基本塊的DAG表示及最佳化
7.3循環最佳化
7.3.1循環的定義
7.3.2代碼外提
7.3.3強度削弱
7.3.4刪除歸納變數
7.4小結
7.5習題
第8章目標代碼生成
8.1概述
8.2目標機及指令系統簡介
8.2.180x86體系結構
8.2.280x86中的暫存器
8.2.380x86指令系統介紹
8.3一個簡單的代碼生成器
8.4基本塊的代碼生成器
8.4.1引用信息和活躍信息
8.4.2暫存器描述和地址描述
8.4.3基本塊的代碼生成
8.5從DAG生成目標代碼
8.6代碼最佳化及目標代碼生成器的設計
8.6.1目標代碼生成器的結構
8.6.2彙編指令的選擇
8.6.3構成完整的彙編語言程式
8.7小結
8.8習題
參考文獻

相關詞條

熱門詞條

聯絡我們