程式語言實現模式
程式語言實現模式
基本資訊
作者: Terence Parr [作譯者介紹]
出版社:華中科技大學出版社
ISBN:9787560977003
上架時間:2012-3-16
出版日期:2012 年3月
開本:16開
頁碼:388
版次:1-1
所屬分類: 計算機 > 軟體與程式設計 > 組合語言/編譯原理 > 組合語言程式設計
更多詳細內容 》》》
內容簡介
計算機書籍
本書旨在傳授開發語言應用(工具)的經驗和理念,幫助讀者構建自己的語言應用。這裡的語言應用並非特指用編譯器或直譯器實現程式語言,而是泛指任何處 理、分析、翻譯輸入檔案的程式,比如配置檔案讀取器、資料讀取器、模型驅動的程式碼生成器、原始碼到原始碼的翻譯器、原始碼分析工具、直譯器,以及諸如此類的工 具。為此,作者舉例講解已有語言應用的工作機制,拆解、歸納出31種易於理解且常用的設計模式(每種都包括通用資料結構、演算法、策略)。雖然示例是用 Java編寫的,但相信讀者可以觸類旁通,利用這些設計模式構建針對其他程式語言(既包括特定領域語言,也包括通用程式語言)的應用。
目錄
第1章 初探語言應用 3
1.1 大局觀 3
1.2 模式概覽 5
1.3 深入淺出語言應用 9
1.4 為語言應用選擇合適的模式 17
第2章 基本解析模式 21
2.1 識別式子的結構 22
2.2 構建遞迴下降語法解析器 24
2.3 使用文法dsl來構建語法解析器 26
2.4 詞法單元和句子 27
第3章 高階解析模式 49
3.1 利用任意多的向前看符號進行解析 50
3.2 記憶式解析 52
3.3 採用語義資訊指導解析過程 52
第2部分 分析輸入
第4章 從語法樹構建中間表示 73
4.1 為什麼要構建樹 75
4.2 構建抽象語法樹 77
4.3 簡要介紹antlr 84
4.4 使用antlr文法構建ast 86
第5章 遍歷並改寫樹形結構 101
5.1 遍歷樹以及訪問順序 102
5.2 封裝訪問節點的程式碼 105
5.3 根據文法自動生成訪問者 107
5.4 將遍歷與匹配解耦 110
第6章 記錄並識別程式中的符號 131
6.1 收集程式實體的資訊 132
6.2 根據作用域劃分符號 134
6.3 解析符號 139
第7章 管理資料聚集的符號表 155
7.1 為結構體構建作用域樹 156
7.2 為類構建作用域樹 158
第8章 靜態型別檢查 181
第3部分 解釋執行
第9章 構建高階直譯器 219
9.1 高階直譯器儲存系統的設計 220
9.2 高階直譯器中的符號記錄 222
9.3 處理指令 224
第10章 構建位元組碼直譯器 239
10.1 設計位元組碼直譯器 241
10.2 定義組合語言語法 243
10.3 位元組碼機器的架構 245
10.4 如何深入 250
第4部分 生成輸出
第11章 語言的翻譯 278
11.1 語法制導的翻譯 280
11.2 基於規則的翻譯 281
11.3 模型驅動的翻譯 283
11.4 建立巢狀的輸出模型 291
第12章 使用模板生成dsl 312
12.1 熟悉stringtemlate 313
12.2 stringtemlate的性質 316
12.2 從一個簡單的輸入模型生成模板 317
12.4 在輸入模型不同的情況下複用模板 320
12.5 使用樹文法來建立模板 323
12.6 對資料列表使用模板 330
12.7 編寫可改變輸出結果的翻譯器 336
第13章 知識彙總 348
13.1 在蛋白質結構中查詢模式 348
13.2 使用指令碼構建三維場景 349
13.3 處理xml 350
13.4 讀取通用的配置檔案 352
13.5 對程式碼進行微調 353
13.6 為java新增新的型別 354
13.7 美化原始碼 355
13.8 編譯為機器碼 356
參考文獻 359
索引 361
本來源於 》》》
基本資訊
作者: Terence Parr [作譯者介紹]
出版社:華中科技大學出版社
ISBN:9787560977003
上架時間:2012-3-16
出版日期:2012 年3月
開本:16開
頁碼:388
版次:1-1
所屬分類: 計算機 > 軟體與程式設計 > 組合語言/編譯原理 > 組合語言程式設計
更多詳細內容 》》》
內容簡介
計算機書籍
本書旨在傳授開發語言應用(工具)的經驗和理念,幫助讀者構建自己的語言應用。這裡的語言應用並非特指用編譯器或直譯器實現程式語言,而是泛指任何處 理、分析、翻譯輸入檔案的程式,比如配置檔案讀取器、資料讀取器、模型驅動的程式碼生成器、原始碼到原始碼的翻譯器、原始碼分析工具、直譯器,以及諸如此類的工 具。為此,作者舉例講解已有語言應用的工作機制,拆解、歸納出31種易於理解且常用的設計模式(每種都包括通用資料結構、演算法、策略)。雖然示例是用 Java編寫的,但相信讀者可以觸類旁通,利用這些設計模式構建針對其他程式語言(既包括特定領域語言,也包括通用程式語言)的應用。
目錄
第1章 初探語言應用 3
1.1 大局觀 3
1.2 模式概覽 5
1.3 深入淺出語言應用 9
1.4 為語言應用選擇合適的模式 17
第2章 基本解析模式 21
2.1 識別式子的結構 22
2.2 構建遞迴下降語法解析器 24
2.3 使用文法dsl來構建語法解析器 26
2.4 詞法單元和句子 27
第3章 高階解析模式 49
3.1 利用任意多的向前看符號進行解析 50
3.2 記憶式解析 52
3.3 採用語義資訊指導解析過程 52
第2部分 分析輸入
第4章 從語法樹構建中間表示 73
4.1 為什麼要構建樹 75
4.2 構建抽象語法樹 77
4.3 簡要介紹antlr 84
4.4 使用antlr文法構建ast 86
第5章 遍歷並改寫樹形結構 101
5.1 遍歷樹以及訪問順序 102
5.2 封裝訪問節點的程式碼 105
5.3 根據文法自動生成訪問者 107
5.4 將遍歷與匹配解耦 110
第6章 記錄並識別程式中的符號 131
6.1 收集程式實體的資訊 132
6.2 根據作用域劃分符號 134
6.3 解析符號 139
第7章 管理資料聚集的符號表 155
7.1 為結構體構建作用域樹 156
7.2 為類構建作用域樹 158
第8章 靜態型別檢查 181
第3部分 解釋執行
第9章 構建高階直譯器 219
9.1 高階直譯器儲存系統的設計 220
9.2 高階直譯器中的符號記錄 222
9.3 處理指令 224
第10章 構建位元組碼直譯器 239
10.1 設計位元組碼直譯器 241
10.2 定義組合語言語法 243
10.3 位元組碼機器的架構 245
10.4 如何深入 250
第4部分 生成輸出
第11章 語言的翻譯 278
11.1 語法制導的翻譯 280
11.2 基於規則的翻譯 281
11.3 模型驅動的翻譯 283
11.4 建立巢狀的輸出模型 291
第12章 使用模板生成dsl 312
12.1 熟悉stringtemlate 313
12.2 stringtemlate的性質 316
12.2 從一個簡單的輸入模型生成模板 317
12.4 在輸入模型不同的情況下複用模板 320
12.5 使用樹文法來建立模板 323
12.6 對資料列表使用模板 330
12.7 編寫可改變輸出結果的翻譯器 336
第13章 知識彙總 348
13.1 在蛋白質結構中查詢模式 348
13.2 使用指令碼構建三維場景 349
13.3 處理xml 350
13.4 讀取通用的配置檔案 352
13.5 對程式碼進行微調 353
13.6 為java新增新的型別 354
13.7 美化原始碼 355
13.8 編譯為機器碼 356
參考文獻 359
索引 361
本來源於 》》》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16566727/viewspace-730491/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go語言實現設計模式之命令模式Go設計模式
- Go語言實現GoF設計模式:介面卡模式Go設計模式
- 快收藏!最全GO語言實現設計模式Go設計模式
- 如何使用C#語言實現原型模式C#原型模式
- [譯]用javascript實現一門程式語言-語言構想JavaScript
- 中文程式語言中文程式語言實現:翻譯器
- C語言實現萬年曆程式C語言
- 23種設計模式 之 State模式(狀態模式)[C語言實現]設計模式C語言
- 用JavaScript實現一門程式語言 2 (λanguage語言簡介)JavaScript
- 自定義語言的實現——直譯器模式(五)模式
- 自定義語言的實現——直譯器模式(四)模式
- 自定義語言的實現——直譯器模式(三)模式
- 自定義語言的實現——直譯器模式(二)模式
- 易語言實現一個登入程式
- Go語言實現的23種設計模式之結構型模式Go設計模式
- Java設計模式-17、直譯器模式-自定義語言的實現Java設計模式
- C語言如何實現泛型程式設計?C語言泛型程式設計
- [譯] 用javascript實現一門程式語言-前言JavaScript
- 手寫程式語言-實現運算子過載
- windows下ping程式使用C語言實現WindowsC語言
- 挑戰程式設計技能 Rust 語言實現程式設計Rust
- 現代程式語言用什麼語言寫成?
- Egison 3.5.1 釋出,模式匹配程式語言模式
- 用javascript實現一門程式語言-字元輸入流JavaScript字元
- 如何使用 JavaScript 實現一門程式語言(1) : 前言JavaScript
- 使用JavaScript實現“真·函數語言程式設計”JavaScript函數程式設計
- 用XML實現程式語言間的互譯 (轉)XML
- Go語言實現RPCGoRPC
- 掃雷--C語言實現C語言
- C語言實現DES加密C語言加密
- OAF多語言的實現
- go語言實現掃雷Go
- c語言實現階乘C語言
- 哪些語言能更優雅地實現裝飾器模式? - frankel模式
- 利用棧實現佇列(C語言實現)佇列C語言
- 邏輯式程式語言極簡實現(使用C#) - 1. 邏輯式程式語言介紹C#
- 程式語言模式:`=`表示賦值,`:`表示型別。模式賦值型別
- [譯]用javascript實現一門程式語言-詞法分析JavaScript詞法分析