【编程语言】电子书 - 两周自制脚本语言

该帖子部分内容已隐藏
付费阅读
金币 3
此内容为付费阅读,请付费后查看

书籍目录

封面

数字版权声明

作者简介

扉页

版权

译者序

前言

推荐序

致谢

本书的阅读方式

目录

第 1 部分  基础篇

第 1 天 来,我们一起做些什么吧

1.1 机器语言与汇编语言

1.2 解释器与编译器

1.3 开发语言处理器

1.4 语言处理器的结构与本书的框架

第 2 天 设计程序设计语言

2.1 麻雀虽小、五脏俱全的程序设计语言

2.2 句尾的分号

2.3 含糊不得的语言

第 3 天 分割单词

3.1 Token 对象

3.2 通过正则表达式定义单词

3.3 借助java.util.regex设计词法分析器

3.4 词法分析器试运行

第 4 天 用于表示程序的对象

4.1 抽象语法树的定义

4.2 设计节点类

4.3 BNF

4.4 语法分析与抽象语法树

第 5 天 设计语法分析器

5.1 Stone语言的语法

5.2 使用解析器与组合子

5.3 由语法分析器生成的抽象语法树

5.4 测试语法分析器

第 6 天 通过解释器执行程序

6.1 eval方法与环境对象

6.2 各种类型的eval方法

6.3 关于GluonJ

6.4 执行程序

第 7 天 添加函数功能

7.1 扩充语法规则

7.2 作用域与生存周期

7.3 执行函数

7.4 计算斐波那契数

7.5 为闭包提供支持

7.6 实现闭包

第 8 天 关联Java语言

8.1 原生函数

8.2 编写使用原生函数的程序

第 9 天 设计面向对象语言

9.1 设计用于操作类与对象的语法

9.2 实现类所需的语法规则

9.3 实现eval方法

9.4 通过闭包表示对象

9.5 运行包含类的程序

第 10 天 无法割舍的数组

10.1 扩展语法分析器

10.2 仅通过修改器来实现数组

第 2 部分  性能优化篇

第 11 天 优化变量读写性能

11.1 通过简单数组来实现环境

11.2 用于记录全局变量的环境

11.3 事先确定变量值的存放位置

11.4 修正eval方法并最终完成性能优化

第 12 天 优化对象操作性能

12.1 减少内存占用

12.2 能否通过事先查找变量的保存位置来优化性能

12.3 定义lookup方法

12.4 整合所有修改并执行

12.5 内联缓存

第 13 天 设计中间代码解释器

13.1 中间代码与机器语言

13.2 Stone虚拟机

13.3 通过栈实现环境

13.4 寄存器的使用

13.5 引用变量的值

13.6 if语句与while语句

13.7 函数的定义与调用

13.8 转换为虚拟机器语言

13.9 通过虚拟机执行

第 14 天 为Stone语言添加静态类型支持以优化性能

14.1 指定变量类型

14.2 通过数据类型检查发现错误

14.3 运行程序时执行类型检查

14.4 对类型省略的变量进行类型推论

14.5 Java二进制代码转换

14.6 综合所有修改再次运行程序

第 3 部分  解说篇(自习时间)

第 15 天 手工设计词法分析器

15.1 修改自动机

15.2 自动机程序

15.3 正则表达式的极限

第 16 天 语法分析方式

16.1 正则表达式与BNF

16.2 语法分析算法

16.3 LL语法分析

16.4 算符优先分析法与自底向上语法分析

第 17 天 Parser库的内部结构

17.1 组合子分析

17.2 解析器组合子的内部

第 18 天 GluonJ的使用方法

18.1 设定类路径

18.2 启动设定

18.3 GluonJ语言

18.4 功能总结

第19天 抽象语法树与设计模式

19.1 理想的设计

19.2 Interpreter模式

19.3 Visitor模式

19.4 使用反射

19.5 面向切面语言

关注图灵

封底

看完了

下载地址

请登录后发表评论

    没有回复内容