第1章 引言
1. 1 編譯程序. 匯編程序. 解釋程序
1. 1. 1 什么是編譯程序
1. 1. 2 什么是匯編程序
1. 1. 3 什么是解釋程序
1. 2 編譯過程概述
1. 3 編譯程序的結構框圖
1. 4 編譯程序的開發(fā)
1. 4. 1 編譯程序的開發(fā)步驟
1. 4. 2 編譯程序的開發(fā)技術
1. 4. 3 編譯程序的自動生成
習題1
第2章 形式語言理論基礎
2. 1 形式語言的基本概念
2. 1. 1 符號和符號串
2. 1. 2 符號串的運算
2. 2 文法和語言的形式定義
2. 3 語法樹和二義性
2. 3. 1 語法樹和推導
2. 3. 2 文法的二義性
2. 4 文法的實用限制
2. 4. 1 有害規(guī)則
2. 4. 2 多余規(guī)則
2. 4. 3 文法的實用限制
2. 4. 4 文法的等價變換
2. 4. 5 擴充的BNF表示法
2. 5 文法和語言的Chomsky分類
2. 5. 1 0型文法與0型語言(對應圖靈機)
2. 5. 2 1型文法與1型語言(對應線性界限自動機, 自然語言)
2. 5. 3 2型文法與2型語言(對應下推自動機, 程序設計語言)
2. 5. 4 3型文法與3型語言(對應有限自動機)
2. 5. 5 四類文法的關系
習題2
第3章 自動機理論基礎
3. 1 有限自動機的基本概念
3. 1. 1 有限自動機的定義及表示法
3. 1. 2 有限自動機的機器模型
3. 1. 3 確定有限自動機(DFA)
3. 1. 4 有限自動機在計算機內的表示
3. 1. 5 不確定有限自動機(NFA)
3. 1. 6 由NFA到DFA的等價轉換
3. 2 確定有限自動機DFA的化簡
3. 2. 1 等價狀態(tài)和無關狀態(tài)
3. 2. 2 自動機的化簡
3. 3 正則表達式形式定義
3. 4 下推自動機PDA
3. 4, 1 下推自動機的機器模型
3. 4. 2 PDA的形式定義
習題3
第4章 詞法分析
4. 1 詞法分析概述
4. 1. 1 詞法分析的功能
4. 1. 2 詞法分析的兩種處理結構
4. 1. 3 單詞符號的種類
4. 1. 4 詞法分析程序的輸出形式
4. 2 詞法分析程序的設計與實現(xiàn)
4. 2. 1 詞法分析程序流程圖
4. 2. 2 讀單詞
4. 2. 3 讀無符號數(shù)
4. 2. 4 讀標識符
4. 3 詞法分析程序的自動生成
4. 3. 1 基本思想
4. 3. 2 LEX源程序結構
4. 3. 3 LEX編譯程序工作過程
4. 3. 4 LEX的實現(xiàn)
4. 3. 5 LEX的使用方式
習題4
第5章 語法分析——自頂向下分析方法
5. 1 自頂向下分析技術
5. 2 不確定的自頂向下分析思想
5. 2. 1 三種終結符號集
5. 2. 2 自頂向下分析過程中存在的問題及解決辦法
5. 3 確定的自頂向下分析思想
5. 4 LL(K)分析方法
5. 4. 1 LL(1)分析思想
5. 4. 2 LL(1)分析方法的邏輯結構
5. 4. 3 LL(1)分析方法
5. 5 遞歸下降分析法
5. 5. 1 遞歸下降分析法的實現(xiàn)思想
5. 5. 2 遞歸于程序及其性質
5. 5. 3 遞歸下降分析法
習題5
第6章 語法分析——自底向上分析方法
6. 1 自底向上分析技術
6. 1. 1 自底向上分析的基本思想
6. 1. 2 自底向上分析難點
6. 2 自底向上優(yōu)先分析方法
6. 2. 1 簡單優(yōu)先分析方法
6. 2. 2 算符優(yōu)先分析方法
6. 3 LR(K)分析方法
6. 3. 1 LR分析思想及邏輯結構
6. 3. 2 LR(0)分析方法
6. 3. 3 SLR(1)分析方法
6. 3. 4 LR(1)分析方法
6. 3. 5 LALR(1)分析方法
習題6
第7章 語義分析及中間代碼的生成
7. 1 基本概念
7. 1. 1 語義分析的概念
7. 1. 2 屬性文法技術
7. 2 幾種常見的中間語言
7. 2. 1 抽象語法樹
7. 2. 2 逆波蘭表示
7. 2. 3 四元式
7. 2. 4 二元式
7. 3 表達式的翻譯
7. 3. 1 算術表達式的翻譯
7. 3. 2 布爾表達式的翻譯
7. 4 語句的語法制導翻譯
7. 4. 1 說明語句的翻譯
7. 4. 2 賦值語句的翻譯
7. 4. 3 控制語句的翻譯
習題7
第8章 符號表
8. 1 符號表的組織與內容
8. 2 符號表的結構與存放
8. 2. 1 線性符號表
8. 2. 2 有序符號表
8. 2. 3 散列符號表
8. 2. 4 棧式符號表
8. 3 符號表的管理
8. 3. 1 符號表的建立
8. 3. 2 符號表的查填
習題8
第9章 目標程序運行時的存儲組織與分配
9. 1 程序運行時的存儲組織
9. 2 靜態(tài)存儲分配
9. 3 棧式動態(tài)存儲分配
9. 3. 1 簡單的棧式存儲分配
9. 3. 2 嵌套過程語言的棧式存儲分配
9. 4 堆式動態(tài)存儲分配
習題9
第10章 代碼優(yōu)化
10. 1 代碼優(yōu)化的基本概念
10. 1. 1 代碼優(yōu)化的定義
10. 1. 2 代碼優(yōu)化的分類
10. 1. 3 優(yōu)化技術簡介
10. 2 局部優(yōu)化
10. 2. 1 基本塊的劃分
10. 2. 2 基本塊的DAG表示
10. 2. 3 基本塊優(yōu)化的實現(xiàn)
10. 3 循環(huán)優(yōu)化
10. 3. 1 循環(huán)的查找
10. 3. 2 循環(huán)優(yōu)化的實現(xiàn)
習題10
第11章 目標代碼的生成
11. 1 目標代碼生成程序中的有關問題
11. 1. 1 目標代碼生成程序的輸入. 輸出
11. 1. 2 目標代碼
11. 1. 3 寄存器分配
11. 1. 4 運行時的存儲管理
11. 2 一個計算機模型——虛擬機
11. 2. 1 虛擬機
11. 2. 2 虛擬機的匯編指令
11. 3 從中間代碼生成目標代碼
11. 3. 1 從逆波蘭表示生成目標代碼
11. 3. 2 從四元式序列生成目標代碼
習題11
第12章 錯誤校正
12. 1 引言
12. 1. 1 錯誤存在的必然性
12. 1. 2 錯誤的種類
12. 1. 3 錯誤復原
12. 2 校正詞法錯誤
12. 2. 1 詞法錯誤的種類
12. 2. 2 詞法錯誤的校正
12. 3 校正語法錯誤
12. 3. 1 語法錯誤的復原
12. 3. 2 語法錯誤的校正
12. 4 校正語義錯誤
12. 4. 1 語義錯誤的種類
12. 4. 2 語義錯誤檢查措施
習題12
附錄A PL/0編譯程序
附錄B LEX詞法分析自動生成程序
附錄C YACC語法分析自動生成程序
參考文獻