展开全部

主编推荐语

放下大部头,换一种方式入门编译原理,体验一步步实现类C语言的乐趣。

内容简介

本书是《用Go语言自制解释器》的续篇。在自制解释器时,你已经为Monkey语言实现了类C语法、变量绑定、基本数据类型、算术运算、内置函数、闭包等特性。是时候让Monkey继续成长了。在本书中,Monkey将继续“进化”,并终成长为成熟的程序设计语言。在已有词法分析器、语法分析器和抽象语法树的基础上,你将为Monkey语言定义字节码指令,指定操作数,编写反汇编程序,构建执行字节码的虚拟机。通过动手学习,你将能够体验从无到有实现类C语言的乐趣。

目录

  • 版权信息
  • 致谢
  • 前言
  • 进击的Monkey
  • 过去和现在
  • 未来
  • 如何使用本书
  • 第1章 编译器与虚拟机
  • 1.1 编译器
  • 1.2 虚拟机与物理机
  • 1.2.1 物理机
  • 1.2.2 什么是虚拟机
  • 1.2.3 为什么要构建虚拟机
  • 1.2.4 字节码
  • 1.3 虚拟机与编译器的二元性
  • 第2章 你好,字节码!
  • 2.1 第一条指令
  • 2.1.1 以字节作为开端
  • 2.1.2 最小编译器
  • 2.1.3 字节码与反汇编程序
  • 2.1.4 回归初心,继续前行
  • 2.1.5 给机器上电
  • 2.2 栈上加法
  • 2.3 连接REPL
  • 第3章 编译表达式
  • 3.1 栈清理
  • 3.2 中缀表达式
  • 3.3 布尔类型
  • 3.4 比较运算符
  • 3.5 前缀表达式
  • 第4章 条件语句
  • 4.1 跳转
  • 4.2 编译条件语句
  • 4.3 执行跳转
  • 4.4 欢迎回来,Null值
  • 第5章 追踪名称
  • 5.1 计划
  • 5.2 编译绑定
  • 5.2.1 添加符号表
  • 5.2.2 在编译器中使用符号
  • 5.3 在虚拟机中支持全局变量
  • 第6章 字符串、数组和哈希表
  • 6.1 字符串
  • 6.2 数组
  • 6.3 哈希表
  • 6.4 索引运算符
  • 第7章 函数
  • 7.1 一个简单的函数
  • 7.1.1 函数表示
  • 7.1.2 执行函数的操作码
  • 7.1.3 编译函数字面量
  • 7.1.4 编译函数调用
  • 7.1.5 虚拟机中的函数
  • 7.1.6 一点奖励
  • 7.2 局部绑定
  • 7.2.1 局部绑定操作码
  • 7.2.2 编译局部绑定
  • 7.2.3 在虚拟机中实现局部绑定
  • 7.3 参数
  • 7.3.1 编译带参数的函数调用
  • 7.3.2 将引用解析为参数
  • 7.3.3 虚拟机中的参数
  • 第8章 内置函数
  • 8.1 使修改变得简单
  • 8.2 做出改变:计划
  • 8.3 内置函数作用域
  • 8.4 执行内置函数
  • 第9章 闭包
  • 9.1 问题
  • 9.2 计划
  • 9.3 将一切视为闭包
  • 9.4 编译和解析自由变量
  • 9.5 运行时创建闭包
  • 9.6 递归闭包
  • 第10章 最后的测试
  • 作者简介
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    与第一本书一样,本书也只有少量的说明。你最好从头到尾,一边阅读,一边敲出书中呈现的代码并调试它。这就是你需要做的一切。这两本都是关于代码编写以及实现产品构建的实战书。如果你沉迷于编程语言相关理论,那么最好选择一本规范的教科书。这并不是说你从本书中学不到任何知识。

      转发
      评论

    出版方

    人民邮电出版社

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