展开全部

主编推荐语

只需14天,从零开始设计和实现脚本语言。

内容简介

《两周自制脚本语言》是一本优秀的编译原理入门读物。全书穿插了大量轻松风趣的对话,读者可以随书中的人物一起从最简单的语言解释器开始,逐步添加新功能,最终完成一个支持函数、数组、对象等高级功能的语言编译器。《两周自制脚本语言》与众不同的实现方式不仅大幅简化了语言处理器的复杂度,还有助于拓展读者的视野。

《两周自制脚本语言》适合对编译原理及语言处理器设计有兴趣的读者以及正在学习相关课程的大中专院校学生。同时,已经学习过相关知识,有一定经验的开发者,也一定能从本书新颖的实现方式中受益良多。

目录

  • 版权信息
  • 译者序
  • 前言
  • 推荐序
  • 致谢
  • 本书的阅读方式
  • ●出场角色
  • ●有效利用源代码
  • 第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.1 定义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天 抽象语法树与设计模式
  • 18.1 理想的设计
  • 19.2 Interpreter模式
  • 19.3 Visitor模式
  • 19.4 使用反射
  • 19.5 面向切面语言
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。