展开全部

主编推荐语

从零开始,用GO语言创造出另一门语言,体验从无到有实现类C语言的乐趣。

内容简介

在程序员与计算机的“交流”过程中,解释器无疑扮演着优秀的翻译角色。它为只懂0和1的计算机翻译源代码,为看似随机的字符赋予含义。这是如何实现的呢?充满好奇心的你,是否曾经思考过这个问题?跟随本书,你将揭开解释器的神秘面纱,通晓它的工作原理,并编写出自己的解释器。

本书采用Go语言来为自创的编程语言Monkey实现解释器。你将为Monkey语言实现类C语法、变量绑定、基本数据类型、算术运算、内置函数、闭包等特性,并了解什么是词法分析器、语法分析器和抽象语法树。

目录

  • 版权信息
  • 致谢
  • 前言
  • Monkey编程语言和解释器
  • 为什么用Go语言
  • 如何使用本书
  • 更多信息
  • 第1章 词法分析
  • 1.1 词法分析
  • 1.2 定义词法单元
  • 1.3 词法分析器
  • 1.4 扩展词法单元和词法分析器
  • 1.5 编写REPL
  • 第2章 语法分析
  • 2.1 语法分析器
  • 2.2 为什么不用语法分析器生成器
  • 2.3 为Monkey语言编写语法分析器
  • 2.4 语法分析器的第一步:解析let语句
  • 2.5 解析return语句
  • 2.6 解析表达式
  • 2.7 普拉特解析的工作方式
  • 2.8 扩展语法分析器
  • 2.9 RPPL
  • 第3章 求值
  • 3.1 为符号赋予含义
  • 3.2 求值策略
  • 3.3 树遍历解释器
  • 3.4 表示对象
  • 3.5 求值表达式
  • 3.6 条件语句
  • 3.7 return语句
  • 3.8 错误处理
  • 3.9 绑定与环境
  • 3.10 函数和函数调用
  • 3.11 如何处理垃圾
  • 第4章 扩展解释器
  • 4.1 数据类型和函数
  • 4.2 字符串
  • 4.3 内置函数
  • 4.4 数组
  • 4.5 哈希表
  • 4.6 大结局
  • 第5章 遗失的篇章:Monkey的宏系统
  • 5.1 宏系统
  • 5.2 Monkey的宏系统
  • 5.3 quote
  • 5.4 unquote
  • 5.5 宏扩展
  • 5.6 扩展REPL
  • 5.7 关于宏的一些畅想
  • 作者简介
展开全部

评分及书评

5.0
3个评分
  • 用户头像
    给这本书评了
    5.0

    本书既不是参考书,也不是描述解释器实现概念并在附录中附加代码的理论读物。本书需要按顺序阅读,我建议读者从头到尾,一边阅读,一边敲出书中的代码并调试。每章的代码和内容都以其之前的章节为基础。每一章都会构建解释器的一部分,一点一点积累,直至完成。为了使后续操作更容易,本书附带了一个名为 code 的文件夹,其中包含代码。

      转发
      评论
      用户头像
      给这本书评了
      5.0

      简单而且有趣的一本书,全文采用 TDD 方法来实现。

        转发
        评论

      出版方

      人民邮电出版社

      人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。