Skip to content

sweet2honey/craftinginterpreters_zh

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

craftinginterpreters_zh

[ 在线阅读 ]

手撸解释器教程《Crafting Interpreters》中文翻译。

这是一个已基本完成的翻译项目,原项目是craftinginterpreters,同时还有配套的英文书,可免费在线阅读

该书由一门小型的自创语言Lox开始,分别使用Java和C实现了两种类型的解释器,jlox和clox,其中前者是将语法解析成Java中的表示代码,主要依赖Java本身的语法能力实现代码的真正运行;后者则采用了类似编译和虚拟机的机制,实现了一个看上去“更高效”的解释器。

该书中并不是只灌输概念或者只贴出代码,相反,作者经过悉心拆解解释器相关的概念,在每一章节中逐步进行讲解和实现,并且保证每个章节结束之后都有一个可以运行的解释器版本。内容上不会有太过深入的理论,对于普通编程爱好者也可以很容易地上手学习。

如果您的英语阅读能力比较强,建议直接阅读原文,同时也欢迎您参与本项目,分享自己学习的成果,帮助更多的人。

囿于本人能力限制,在译文难免有错漏或者含混之处,请积极留言,我会悉心听取大家的意见,争取可以让这篇译文帮助到更多人。

如果您觉得这篇译文对您的学习有所帮助,可以奖励作者一杯奶茶:)

支付宝 微信支付

进度

章节序号 章节名 内容简介 完成情况
I WELCOME 导读 已完成
1 Introduction 前言 已完成
2 A Map of the Territory 解释器简介 已完成
3 The Lox Language Lox语言介绍 已完成
II A TREE-WALK INTERPRETER jlox介绍 已完成
4 Scanning 扫描器相关 已完成
5 Representing Code 表示代码 已完成
6 Parsing Expressions 解析表达式 已完成
7 Evaluating Expressions 执行表达式 已完成
8 Statements and State 语句和状态 已完成
9 Control Flow 控制流 已完成
10 Functions 函数 已完成
11 Resolving and Binding 解析和绑定 已完成
12 Classes 已完成
13 Inheritance 继承 已完成
III A BYTECODE VIRTUAL MACHINE clox介绍 已完成
14 Chunks of Bytecode 字节码 已完成
15 A Virtual Machine 虚拟机 已完成
16 Scanning on Demand 扫描 已完成
17 Compiling Expressions 编译表达式 已完成
18 Types of Values 值类型 已完成
19 Strings 字符串 已完成
20 Hash Tables 哈希表 已完成
21 Global Variables 全局变量 已完成
22 Local Variables 局部变量 已完成
23 Jumping Back and Forth 来回跳转 已完成
24 Calls and Functions 调用和函数 已完成
25 Closures 闭包 已完成
26 Garbage Collection 垃圾回收 已完成
27 Classes and Instances 类和实例 已完成
28 Methods and Initializers 方法和初始化 已完成
29 Superclasses 超类 已完成
30 Optimization 优化 已完成
BACKMATTER 后记 已完成
A1 Appendix I: Lox Grammar Lox语法 已完成
A2 Appendix II: Generated Syntax Tree Classes 语法树类 已完成

PS:

文本中使用了很多Typora功能语法,建议使用Typora阅读,

特别鸣谢

感谢xieyuheng提供的在线阅读支持,为需要在线阅读markdown文档的同学推荐read-only项目,样式简约大方,值得一试。

About

手撸解释器教程《Crafting Interpreters》中文翻译

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published