内容简介
在程序员与计算机的“交流”过程中,解释器无疑扮演着优秀的翻译角色。它为只懂0和1的计算机翻译源代码,为看似随机的字符赋予含义。这是如何实现的呢?充满好奇心的你,是否曾经思考过这个问题?跟随本书,你将揭开解释器的神秘面纱,通晓它的工作原理,并编写出自己的解释器。
本书采用Go语言来为自创的编程语言Monkey实现解释器。你将为Monkey语言实现类C语法、变量绑定、基本数据类型、算术运算、内置函数、闭包等特性,并了解什么是词法分析器、语法分析器和抽象语法树。
作者简介
索斯藤·鲍尔(Thorsten Ball)
Sourcegraph软件工程师,精通多门程序设计语言,包括Go、C、JavaScript和Ruby,深谙编译原理、系统编程、Unix、数据库等相关技术。现居德国,长期活跃于欧洲各大技术大会。
孙波翔
软件工程师,硕士毕业后旅居法国。从事与Python、Go相关的研究和工作,热爱开源,侧重于Python、GUI、编译器方向。给NumPy、PySide2、wxWidgets、Cython、Pyston v1解释器等开源项目贡献过代码,另译有《深入理解Python特性》。
目录
前言第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.9RPPL
第3章求值
3.1为符号赋予含义
3.2求值策略
3.3树遍历解释器
3.4表示对象
3.5求值表达式
3.6条件语句
3.7return语句
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.2Monkey的宏系统
5.3quote
5.4unquote
5.5宏扩展
5.6扩展REPL
5.7关于宏的一些畅想
······
[ 用Go语言自制解释器下载地址 ]【免费下载】
最后修改:2025 年 01 月 22 日
© 允许规范转载