科技
类型
9.2
豆瓣评分
可以朗读
语音朗读
256千字
字数
2022-06-01
发行日期
展开全部
主编推荐语
放下大部头,换一种方式入门编译原理,体验一步步实现类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章 最后的测试
- 作者简介
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。