《编程语言实现模式》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)帕尔著
  • 出 版 社:武汉:华中科技大学出版社
  • 出版年份:2012
  • ISBN:9787560977003
  • 页数:374 页
图书介绍:本书旨在传授构建语言应用(工具)的经验和理念,教读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序。

第1部分 解析起步 1

第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

模式一 从文法到递归下降识别器 29

模式二 LL(l)递归下降的词法解析器 34

模式三 LL(l)递归下降的语法解析器 38

模式四 LL(k)递归下降的语法解析器 43

第3章 高阶解析模式 49

3.1 利用任意多的向前看符号进行解析 50

3.2 记忆式解析 52

3.3 采用语义信息指导解析过程 52

模式五 回溯解析器 55

模式六 记忆解析器 62

模式七 谓词解析器 68

第2部分 分析语言 71

第4章 从语法树构建中间表示 73

4.1 为什么要构建树 75

4.2 构建抽象语法树 77

4.3 简要介绍ANTLR 84

4.4 使用ANTLR文法构建AST 86

模式八 解析树 90

模式九 同型AST 94

模式十 规范化异型AST 96

模式十一 不规则异型AST 99

第5章 遍历并改写树形结构 101

5.1 遍历树及访问顺序 102

5.2 封装访问节点的代码 105

5.3 根据文法自动生成访问者 107

5.4 将遍历与匹配解耦 110

模式十二 内嵌式遍历器 113

模式十三 外部访问者 116

模式十四 树文法 119

模式十五 模式匹配器 123

第6章 记录并识别程序中的符号 131

6.1 收集程序实体的信息 132

6.2 根据作用域划分符号 134

6.3 解析符号 139

模式十六 单作用域符号表 141

模式十七 嵌套作用域符号表 146

第7章 管理数据聚集的符号表 155

7.1 为结构体构建作用域树 156

7.2 为类构建作用域树 158

模式十八 数据聚集的符号表 161

模式十九 类的符号表 167

第8章 静态类型检查 181

模式二十 计算表达式类型 184

模式二十一 自动类型提升 193

模式二十二 检查类型安全 201

模式二十三 多态类型检查 208

第3部分 解释执行 217

第9章 构建高级解释器 219

9.1 高级解释器存储系统的设计 220

9.2 高级解释器中的符号记录 222

9.3 处理指令 224

模式二十四 语法制导解释器 225

模式二十五 基于树的解释器 230

第10章 构建字节码解释器 239

10.1 设计字节码解释器 241

10.2 定义汇编语言语法 243

10.3 字节码机器的架构 245

10.4 如何深入 250

模式二十六 字节码汇编器 252

模式二十七 栈解释器 259

模式二十八 寄存器解释器 267

第4部分 翻译和生成语言 277

第11章 语言的翻译 279

11.1 语法制导的翻译 281

11.2 基于规则的翻译 282

11.3 模型驱动的翻译 284

11.4 创建嵌套的输出模型 292

模式二十九 语法制导的翻译器 296

模式三十 基于规则的翻译器 302

模式三十一 特定目标的生成类 308

第12章 使用模板生成DSL 313

12.1 熟悉StringTemplate 314

12.2 StringTemplate的性质 317

12.3 从一个简单的输入模型生成模板 318

12.4 在输入模型不同的情况下复用模板 321

12.5 使用树文法来创建模板 324

12.6 对数据列表使用模板 331

12.7 编写可改变输出结果的翻译器 337

第13章 知识汇总 349

13.1 在蛋白质结构中查找模式 349

13.2 使用脚本构建三维场景 350

13.3 处理XML 351

13.4 读取通用的配置文件 353

13.5 对代码进行微调 354

13.6 为Java添加新的类型 355

13.7 美化源代码 356

13.8 编译为机器码 357

参考书目 359

索引 361