《编程语言实现模式》旨在传授开发语言应用(工具)的经验和理念,帮助读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出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
ThedevelopmentoftheSemanticWeb,withmachine-readablecontent,hasthepotentialtorevo...
BarkersFutureEdge,publishedin1992andlaterrepublishedasParadigms,gottractionasabu...
"Ifyoureseriousaboutrecording-whetheryoureanamateurenthusiast,astudent,amusician...
《大写的历史:被遗忘的历史事件》内容简介:《左传》既然是战国初期才正式成书,而赵氏宗族又是晋国政治权力博弈中的最后胜利者,
《如何用保险保障你的一生》内容简介:本书是知乎保险类大V李元霸写给普通大众的保险科普书。本书获得《小狗钱钱》策划人汤小明作序
《齐白石鱼虫册》内容简介:“南山册页”是浙江摄影出版社自主选编的一套名家册页小品集,以散页函套的装帧形式出版,题材集中于历
本书在一开始就给出一个概述和指南,论述了从grep到sed再到awk不断改进的功能。sed和awk具有相同的命令行语法,以脚本的形式接收
《金融市场交易策略:嵌套理论》内容简介:本书所介绍的嵌套理论适用于股票、期货等多个金融交易领域。全书分为理论篇、技术篇、系
《孟子选注》内容简介:本书从战国时期思想家、政治家、教育家孟子的哲学政治理论和教育纲领著作《孟子》七篇中选取精华篇章,加以
当代机器深度学习方法与应用研究 内容简介 本书对当前*新的深度学习方法及应用进行了全面的概述, 涵盖了自动语音识别 (ASR) 、计算机视觉、语言建模、文本处理...
Office2016办公专家 从入门到精通 本书特色 office已是当今应用*广泛的办公软件套装之一,熟练使用office也成为职场人士**的职业素养。本书以...
创意的photoshop artwork 内容简介 1:呈现*新锐的创意思路和*精湛的操作技巧,展示如何将优秀的创意融合在精致的视觉画面中,带您领略顶级创意设计...
《跟我学SEO从入门到精通》内容简介:本书从实战出发,理论知识较少,目的是让绝大多数SEO初学者及从业人员直接习得大量可操作性高
《全彩电工从入门到精通(微视频版)》内容简介:本书以“全彩+图解+视频”的方式介绍电工技术,主要内容有电工基础与安全用电、电
《基于Kubernetes的DevOps实践:容器加速软件交付》内容简介:容器化被认为是实现DevOps的最佳方式。谷歌开发了Kubernetes,它有效
《深度学习在动态媒体中的应用与实践》内容简介:本书是一本深度学习的基础入门读物,对深度学习的基本理论进行了介绍,主要以Ubun
无线网络需要提供更高的数据速率,而空时处理利用多天线技术和复杂信号处理算法,是改善系统性能的新的强大工具。空时处理技术已
《孝经:忠经》内容简介:孝与忠,是中国古代儒家学说的重要内涵,对古代中国人影响至深至远。《孝经》十八章,成于秦汉之际,南宋
媒体推荐“EverybusinessleaderIknowworriesaboutthesamething:Arewemovingfastenough?Theg...
《中国工程船研发史》内容简介:本书是中国船舶研发史丛书之一。工程船是专门用于各种水上、水下工程建设的船舶。本书从工程船定义