cs-self-learning/docs/编译原理/craftingInterpreters.md
2024-04-17 16:18:58 +08:00

19 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/