mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-06-25 10:56:55 +08:00
19 lines
1.2 KiB
Markdown
19 lines
1.2 KiB
Markdown
# Crafting Interpreters
|
||
|
||
## 课程简介
|
||
|
||
- 编程语言:java and c
|
||
- 课程难度:🌟🌟🌟
|
||
- 预计学时:150h
|
||
|
||
Bob Nystrom 所著的优秀的 Crafting Interpreters,可在网上免费获取。这本书条理清晰,富有趣味性,是一本非常好的入门书,适合那些想要更好地理解语言和语言工具的人。
|
||
|
||
整本书实际分为两个部分:
|
||
(1)语法树:从Scanning的词法到表达式的递归下降分析到statements的语法分析,最后是Resolving and Binding(遍历语法树的语义分析操作),会带你实现整个编译理论的前端部分,即得到语法树的数据结构和错误检查的结果。
|
||
(2)虚拟机: 语法树可以理解为从上而下的分析高级语言,这部分就是从下往上的理解编译理论,最后编译生成的结果可以分为两种,其一是指令,其直接运行在计算机上,由译码器,pc等共同操作,其二是Bytecode(字节码),如java的编译结果class文件,其运行在JVM虚拟机中,由虚拟机解释执行生成的字节码,这一部分使用c实现一个virtual machine,还包括Garbage Collection等内容。
|
||
|
||
|
||
## 课程资源
|
||
|
||
- 课程网站:https://craftinginterpreters.com/
|
||
|