編譯原理及實現技術
作 者:劉磊 等編著出 版 社:機械工業出版社
出版時間:2010-8-1
版 次:2
頁 數:184
字 數:293000
印刷時間:2010-8-1
開 本:16開
紙 張:膠版紙
印 次:1
I S B N:9787111312611
包 裝:平裝
內容簡介
編譯原理是計算機學科的一門重要專業基礎課。本書旨在介紹編譯程式設計的基本原理、實現技術、方法和工具,充分考慮了教師便於教學,學生便於自學的問題。在介紹基本原理和實現技術中,注重循序漸進、深入淺出,每一章節都提供了編譯程式實現的具體實例,每章末尾給出了豐富的習題以輔助學生更好地掌握編譯過程。
本書包含了編譯程式設計的基礎理論和具體實現技術,主要內容有:形式語言和自動機理論、詞法分析、語法分析、語義分析、中間代碼生成、中間代碼最佳化和目標代碼生成等編譯過程。
本書可作為大專院校計算機專業本科生教材,也可作為計算機工程技術人員的參考書。
目錄
第1章 編譯引論
1.1 程式設計語言和編譯程
1.2 編譯程式的結構
1.2.1 編譯程式的構成
1.2.2 遍
1.2.3 編譯程式的前端和後端
1.3 編譯程式和程式設計環境
1.4 編譯程式的實現
習題
第2章 形式語言與自動機理論基礎
2.1 基本概念
2.2 文法
2.2.1 文法的定義
2.2.2 文法分類
2.2.3 推導和歸約
2.2.4 語法樹與文法二義性
2.2.5 文法等價變換
2.3 有限自動機(FA)
2.3.1 確定有限自動機
2.3.2 非確定有限自動機
2.3.3 DFA與NFA的等價
2.3.4 DFA的化簡
2.4 正則表達式
2.4.1 正則表達式與正則集
2.4.2 正則表達式與有限自的相互轉換
習題
第3章 詞法分析
3.1 詞法分析介紹
3.1.1 詞法分析程式的功能
3.1.2 詞法分析程式的接口
3.2 詞法分析程式設計
3.2.1 單詞分類
3.2.2 單詞的內部表示
3.2.3 單詞的形式描述
3.2.4 自動機的實現
3.3 詞法分析程式的實現
3.3.1 實現詞法分析程式應注意的問題
3.3.2 單詞結
3.3.3 實現算法
3.4 詞法分析程式自動生成
3.4.1 LEX簡介
3.4.2 LEX工作原理
3.4.3 LEX源檔案結構
3.4.4 LEX系統中的正則式
3.4.5 LEX的使用方式
3.4.6 套用實例
習題
第4章 語法分析——自頂向下分析方法
4.1 語法分析程式介紹
4.1.1 語法分析程式的功能
4.1.2 語法錯誤類別及錯誤處理
4.1.3 自頂向下語法分析基本思想
4.1.4 3個重要的集合
4.1.5 自頂向下語法分析條件
4.2 遞歸下降法
4.2.1 遞歸下降法語法分析原理
4.2.2 遞歸下降法語法分析程式的構造
4.3 LL(1)分析方法
4.3.1 LL(1)分析法原理
4.3.2 LL(1)分析表的構造
4.3.3 LL(1)驅動程式的構造
4.4 自頂向下分析程式的自動生成
習題
第5章 語法分析——自底向上分析方法
5.1 自底向上語法分析方法介紹
5.2 簡單優先分析
5.2.1 簡單優先文法及其優先關係矩陣的構造
5.2.2 簡單優先分析算法
5.3 LR分析法
5.3.1 LR類分析法的工作過程
5.3.2 LR(0)分析方法
5.3.3 SLR(1)分析方法
5.3.4 LR(1)分析方法
5.3.5 LALR(1)分析方法
5.3.6 LR方法小結
5.4 自底向上分析程式的自動生成
習題
第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.3 符號表的管理
6.3.1 符號表的建立與訪問
6.3.2 符號表的組織
6.3.3 符號表的局部化處理
6.4 程式設計語言符號表的實例
6.4.1 Pascal的符號表
6.4.2 C的符號表
習題
第7章 中間代碼生成
7.1 常用的中間代碼結構
7.1.1 後綴式
7.1.2 抽象語法樹和DAG
7.1.3 三地址中間代碼
7.2 語法制導方法概論
7.3 類型檢查和類型轉換
7.4 中間代碼生成中的幾個問題
7.4.1 語義信息的獲取和保存
7.4.2 語義棧Sem及其操作
7.4.3 常用的語義子程式
7.5 表達式的中間代碼生成
7.6 下標變數的中間代碼生成
7.6.1 下標變數的地址
7.6.2 下標變數的四元式結構
7.6.3 下標變數的中間代碼生成過程
7.6.4 下標變數中間代碼生成實例
7.7 賦值語句的中間代碼
7.8 過程調用和函式調用的中間代碼
7.9 控制語句的中間代碼生成
7.9.1 goto語句和標號定位的中間代碼
7.9.2 條件語句的中間代碼
7.9.3 while語句的中間代碼
7.10 過程∕函式聲明的中間代碼生成
習題
第8章 中間代碼最佳化
8.1 最佳化方法概述
8.2 基本塊劃分
8.3 常量表達式局部最佳化
8.4 公共表達式局部最佳化
8.5 循環不變式外提
8.5.1 循環不變式外提概述
8.5.2 循環不變式外提原理
8.6 其他各類最佳化介紹
習題
第9章 運行時存儲空間的組織與管理
9.1 目標程式運行時的存儲結構
9.1.1 目標程式運行時記憶體的劃分
9.1.2 目標程式運行時的存儲分配策略
9.2 過程活動記錄和運行時棧
9.2.1 過程活動記錄
9.2.2 過程活動記錄的申請和釋放
9.3 變數訪問環境
9.3.1 變數訪問環境概述
9.3.2 Display表方法
9.3.3 靜態鏈方法
習題
第10章 目標代碼生成
10.1 目標代碼生成介紹
10.1.1 代碼生成器的輸入和輸出
10.1.2 指令選擇
10.2 虛擬機
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.4.6 標號語句四元式和goto語句四元式的翻譯
10.4.7 過程、函式說明語句四元式的翻譯
10.4.8 過程和函式調用語句四元式的翻譯
習題
參考文獻