用Go语言自制编译器

用Go语言自制编译器

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

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

内容简介

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

作者简介

作者索斯藤·鲍尔,Sourcegraph软件工程师,精通多门程序设计语言,包括Go、C、JavaScript和Ruby,深谙编译原理、系统编程、Unix、数据库等相关技术。

章节目录

版权信息

致谢

前言

进击的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章 最后的测试

作者简介

用Go语言自制编译器是2022年由人民邮电出版社出版,作者[德] 索斯藤·鲍尔。

得书感谢您对《用Go语言自制编译器》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
Go语言程序设计项目化教程(微课版) 电子书
本书切合现代职业教育计算机类专业教学实际,围绕电商平台开发案例予以深入浅出的项目化设计,夯实读者Go语言基础语法知识点的同时,强化其应用Go语言解决实际工程应用问题的能力,为“零基础”的读者提供全面的Go语言学习入门指导和综合应用实践。本书覆盖Go语言的核心语法和特色功能应用,主要内容包括熟悉Go语言开发环境、学习Go语言基础语法、掌握Go语言函数应用、理解Go语言面向对象、体会Go语言高级特性、
分布式对象存储——原理、架构及Go语言实现 电子书
适读人群 :本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。   赠送价值249元的云存储专家视频课程   掌握云存储理论,动手搭建分布式对象存储架构   云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、美亚S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢?   本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐进、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。   本书适合云存储方面的研究者、工程师或架构师阅读,也可以供对云存储技术感兴趣的读者参考。在读完本书之后,你将较为深入地理解对象存储服务,甚至能够实现自己的对象存储服务。   本书包括以下内容:    对象存储简介;    分布式系统原理;    元数据以及元数据服务;    数据校验和去重;    数据冗余和即时修复;    断点续传;    数据压缩;    数据维护。
用Python轻松处理Excel数据 电子书
本书旨在帮助读者掌握如何用Python高效地处理Excel数据,实现办公自动化。本书首先介绍开发环境的搭建和Excel模块的安装,接着讲解编写代码前的准备,然后介绍如何使用openpyxl和pandas这两个模块编写员工信息表查询案例,最后介绍PyInstaller模块与.py文件的编译,以及如何快速移植本书案例的代码。本书不仅适合办公人员阅读,还适合想要了解openpyxl模块和pandas模块
R语言编程基础 电子书
《R语言学习手册》:7章全面介绍R语言及Rattle工具,附课后习题。
用数据讲故事(修订版) 电子书
本书介绍了专业商业图表背后的六大潜在规律。