当前位置:当前位置:主页 > 计算机电子书 > 程序设计 > Go语言 pdf电子书
用Go语言自制解释器

用Go语言自制解释器 PDF 清晰版

  • 更新:2022-06-28
  • 大小:42.4 MB
  • 类别:Go语言
  • 作者:索斯藤·鲍尔(Thorsten、Ball)
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

用Go语言自制解释器》是由人民邮电出版社出版的一本关于Go语言方面的书籍,作者是索斯藤·鲍尔(Thorsten、Ball),主要介绍了关于Go语言、解释器方面的知识内容,目前在Go语言类书籍综合评分为:7.1分。

书籍介绍

- 从零开始,自己写一门语言

- 体验从无到有实现类C语言的乐趣

- 原版豆瓣评分9.5分

跟随本书,你将揭开解释器的神秘面纱,通晓它的工作原理,并编写出自己的解释器。

内容简介

在程序员与计算机的“交流”过程中,解释器无疑扮演着优秀的翻译角色。它为只懂0和1的计算机翻译源代码,为看似随机的字符赋予含义。这是如何实现的呢?充满好奇心的你,是否曾经思考过这个问题?跟随本书,你将揭开解释器的神秘面纱,通晓它的工作原理,并编写出自己的解释器。本书采用Go语言来为自创的编程语言Monkey实现解释器。你将为Monkey语言实现类C语法、变量绑定、基本数据类型、算术运算、内置函数、闭包等特性,并了解什么是词法分析器、语法分析器和抽象语法树。

目录

  • 第 1章 词法分析 1
  • 1.1 词法分析 1
  • 1.2 定义词法单元 2
  • 1.3 词法分析器 4
  • 1.4 扩展词法单元和词法分析器 14
  • 1.5 编写REPL 20
  • 第 2章 语法分析 23
  • 2.1 语法分析器 23
  • 2.2 为什么不用语法分析器生成器 26
  • 2.3 为Monkey 语言编写语法分析器 27
  • 2.4 语法分析器的第 一步:解析let语句 28
  • 2.5 解析return语句 42
  • 2.6 解析表达式 44
  • 2.6.1 Monkey 中的表达式 45
  • 2.6.2 自上而下的运算符优先级分析(也称普拉特解析法) 46
  • 2.6.3 术语 47
  • 2.6.4 准备AST 48
  • 2.6.5 实现普拉特语法分析器 52
  • 2.6.6 标识符 53
  • 2.6.7 整数字面量 57
  • 2.6.8 前缀运算符 60
  • 2.6.9 中缀运算符 65
  • 2.7 普拉特解析的工作方式 72
  • 2.8 扩展语法分析器 81
  • 2.8.1 布尔字面量 83
  • 2.8.2 分组表达式 87
  • 2.8.3 if 表达式 88
  • 2.8.4 函数字面量 94
  • 2.8.5 调用表达式 100
  • 2.8.6 删除TODO 105
  • 2.9 RPPL 107
  • 第3章 求值 110
  • 3.1 为符号赋予含义 110
  • 3.2 求值策略 111
  • 3.3 树遍历解释器 113
  • 3.4 表示对象 114
  • 3.4.1 对象系统的基础 116
  • 3.4.2 整数 116
  • 3.4.3 布尔值 117
  • 3.4.4 空值 118
  • 3.5 求值表达式 118
  • 3.5.1 整数字面量 119
  • 3.5.2 完成REPL 122
  • 3.5.3 布尔字面量 123
  • 3.5.4 空值 125
  • 3.5.5 前缀表达式 126
  • 3.5.6 中缀表达式 129
  • 3.6 条件语句 135
  • 3.7 return语句 139
  • 3.8 错误处理 143
  • 3.9 绑定与环境 149
  • 3.10 函数和函数调用 154
  • 3.11 如何处理垃圾 165
  • 第4章 扩展解释器 168
  • 4.1 数据类型和函数 168
  • 4.2 字符串 168
  • 4.2.1 在词法分析器中支持字符串 169
  • 4.2.2 字符串语法分析 172
  • 4.2.3 字符串求值 173
  • 4.2.4 字符串连接 175
  • 4.3 内置函数 177
  • 4.4 数组 182
  • 4.4.1 在词法分析器中支持数组 183
  • 4.4.2 数组字面量语法分析 185
  • 4.4.3 索引运算符表达式语法分析 188
  • 4.4.4 数组字面量求值 192
  • 4.4.5 索引运算符表达式求值 194
  • 4.4.6 为数组添加内置函数 197
  • 4.4.7 测试驱动数组 201
  • 4.5 哈希表 202
  • 4.5.1 哈希字面量词法分析 203
  • 4.5.2 哈希字面量语法分析 205
  • 4.5.3 哈希对象 210
  • 4.5.4 哈希字面量求值 215
  • 4.5.5 哈希索引表达式求值 218
  • 4.6 大结局 222
  • 第5章 遗失的篇章:Monkey的宏系统 224
  • 5.1 宏系统 224
  • 5.2 Monkey 的宏系统 227
  • 5.3 quote 229
  • 5.4 unquote 233
  • 5.4.1 遍历树 235
  • 5.4.2 替换unquote调用 248
  • 5.5 宏扩展 256
  • 5.5.1 macro关键字 257
  • 5.5.2 宏字面量语法分析 259
  • 5.5.3 定义宏 262
  • 5.5.4 展开宏 267
  • 5.5.5 强大的unless 宏 271
  • 5.6 扩展REPL 273
  • 5.7 关于宏的一些畅想 274

资源获取

相关资源

网友留言