编程语言实现模式 PDF 文档

发布于 2023-03-19 20:07:12 字数 1969 浏览 159 评论 0

本书旨在传授构建语言应用(工具)的经验和理念,教读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。

为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出31种易于理解且常用的设计模式(每种都包括通用数据结构、算法、策略)。虽然示例是用Java编写的,但相信读者可以触类旁通,利用这些设计模式构建针对其他编程语言(既包括特定领域语言,也包括通用编程语言)的应用。

缩略图
文档大纲
附件
图层
当前大纲项目
封面
书名
版权
前言
目录
第1部分 解析起步
第1章 语言应用初探
1.1 大局观
1.2 模式概览
1.3 深入浅出语言应用
1.4 为语言应用选择合适的模式
第2章 基本解析模式
2.1 识别式子的结构
2.2 构建递归下降语法解析器
2.3 使用文法DSL来构建语法解析器
2.4 词法单元和句子
第3章 高阶解析模式
3.1 利用任意多的向前看符号进行解析
3.2 记忆式解析
3.3 采用语义信息指导解析过程
第2部分 分析语言
第4章 从语法树构建中间表示
4.1 为什么要构建树
4.2 构建抽象语法树
4.3 简要介绍ANTLR
4.4 使用ANTLR文法构建AST
第5章 遍历并改写树形结构
5.1 遍历树以及访问顺序
5.2 封装访问节点的代码
5.3 根据文法自动生成访问者
5.4 将遍历与匹配解耦
第6章 记录并识别程序中的符号
6.1 收集程序实体的信息
6.2 根据作用域划分符号
6.3 解析符号
第7章 管理数据聚集的符号表
7.1 为结构体构建作用域树
7.2 为类构建作用域树
第8章 静态类型检查
第3部分 解释执行
第9章 构建高级解释器
9.1 高级解释器存储系统的设计
9.2 高级解释器中的符号记录
9.3 处理指令
第10章 构建字节码解释器
10.1 设计字节码解释器
10.2 定义汇编语言语法
10.3 字节码机器的架构
10.4 如何深入
第4部分 翻译和生成语言
第11章 语言的翻译
11.1 语法制导的翻译
11.2 基于规则的翻译
11.3 模型驱动的翻译
11.4 创建嵌套的输出模型
第12章 使用模板生成DSL
12.1 熟悉StringTemplate
12.2 StringTemplate的性质
12.2 从一个简单的输入模型生成模板
12.4 在输入模型不同的情况下复用模板
12.5 使用树文法来创建模板
12.6 对数据列表使用模板
12.7 编写可改变输出结果的翻译器
第13章 知识汇总
13.1 在蛋白质结构中查找模式
13.2 使用脚本构建三维场景
13.3 处理XML
13.4 读取通用的配置文件
13.5 对代码进行微调
13.6 为Java添加新的类型
13.7 美化源代码
13.8 编译为机器码
参考文献
索引

下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/03/5l5fozy78fpHswDp.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

一梦浮鱼

文章 0 评论 0

mb_Z9jVigFL

文章 0 评论 0

伴随着你

文章 0 评论 0

耳钉梦

文章 0 评论 0

18618447101

文章 0 评论 0

蜗牛

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文