《编程语言实现模式》旨在传授开发语言应用(工具)的经验和理念,帮助读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出31种易于理解且常用的设计模式(每种都包括通用数据结构、算法、策略)。虽然示例是用Java编写的,但相信读者可以触类旁通,利用这些设计模式构建针对其他编程语言(既包括特定领域语言,也包括通用编程语言)的应用。
第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
第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 熟悉StringTemplate 313
12.2 StringTemplate的性质 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
《做东:酒局里的100个生存哲学》内容简介:酒局是阴谋四伏的人性的斗争舞台,是人最高生存智慧的展示场所。《做东》是第一本最全面
《企业成长导航》内容简介:企业成长是企业从小到大、从弱到强的过程。从可量化的指标看,成长表现为经营业绩、资产规模的持续增长
作者简介:BoisyG.Pitre资深苹果开发专家,曾任Siri语音识别技术提供方Nuance公司Mac产品小组的资深软件工程师,参与开发了语音识
关于此书:从甜美的、柔软的、透气的凝胶体,到发光的塑料材料,以及能自行组装的性能,此书都将带你领略塑料的迷人美丽。这里没
C和C++程序设计教程 本书特色 反映当前教学内容,突出理论知识的应用和实践技能的培养。注重社会发展和就业需求,培养适应职业岗位的综合能力,强化学生的应用技能。...
《唯一的规则》内容简介:这本书,是李零阅读经典四部书(《论语》《老子》《孙子》《周易》)的第三本。对《孙子兵法》一书,不易
該年鑒屬日本字體設計協會(JapanTypograhyAssociation)官方出版物,本期版式及裝幀由南部俊安(ToshiyasuNanbu)設計,Grap...
《我为知识产权事业鼓与呼(修订版)》内容简介:本书收录了吴汉东老师在国内外不同场合的专题讲座、主题发言、演讲和访谈等口述作
Photoshop CS4平面广告设计经典108例-含2DVD 内容简介 本书是一本Photoshop CS4的平面设计案例教程,也是一本Photoshop商业...
《成本会计学:理论、实务与案例》内容简介:本书详细介绍了成本会计所需掌握的相关知识,并总结了成本会计理论与政策的新近发展动
《Oracle性能诊断艺术》以优化Oracle应用程序为目的,先介绍Oracle性能优化的基本原理、关键概念,从业务角度和系统角度分析性能
《写给老板的法律课》内容简介:企业自从登记注册的那一刻,就与法律事务密不可分。这就对老板的法律知识储备、法律思维养成提出了
Photoshop专业抠图技法 本书特色 抠什么都不怕!半透明、不透明、动物、植物、人物,《Photoshop专业抠图技法》搞定一切图,绝对超高速。深入剖析了选...
DESCRIPTIONTheresavirtualswitchboardattheheartofmostlargeapplications,wheremilli...
《原来宋词可以这样读》内容简介:所谓词者,句有长短,然情意绵绵,翻开来,爱情、亲情、思乡情,众情毕备;王公、文人、妓女,世
《互动电子创意设计与制作:Arduino一试就上手》分为三大部分,共15章,较详细地介绍了如何从一个Arduino初级“小白”成长为互动“
《富强竞争:工业文化与国家兴衰》内容简介:富强,是社会主义核心价值观之首,也是古今中外各个国家、民族孜孜以求的核心价值观,
Cisco 局域网交换基础 本书特色 随着网络流量、CPU处理速度、操作系统处理能力、网络密集应用的显著增加,LAN已经逐渐变得拥塞和不堪重负。对于彩网络和计算...
《人间一格》内容简介:本书是青年作家、知名媒体人格子首部随笔集。这是一部极具个人风格的作品,是中文随笔的一次全新尝试。从童
《新思想 新境界》内容简介:该书稿以马克思主义理论为指导,紧扣贯彻落实习近平新时代中国特色社会主义思想和十九大报告精神,分专