首先写此篇文章的缘由是看了自学计算机科学
深有感触,随写此篇文章。
其中我感兴趣的部分是编程语言与编译器部分,其中的
我们推荐的入门书是 Bob Nystrom 所著的优秀的Crafting Interpreters,可在网上免费获取。这本书条理清晰,富有趣味性,非常适合那些想要更好地理解语言和语言工具的人。我们建议你花时间读完整本书,并尝试任何一个感兴趣的“挑战”。
文章比较推荐这个连载书籍Crafting Interpreters。
在谷歌搜索关键字,已经有先行者做了相关实践了。
以及知乎上相关问题:
如何想学点编译原理,又不想直接看龙虎之类的书籍,太多理论,干燥?
一个有收获的回答https://www.zhihu.com/answer/293645562
目前我只会编译器前端(手写递归下降解析器),对编译器后端不太清楚,以后有机会学习一下吧。
编译器前端我是从winter老师的前端训练营课程(第1期)中学习到的,
以及牙医教你 450 行代码自制编程语言,
在这里你可以看到代码以及GitHub上的文章,作者(Karminski-牙医)使用的是Go语言,我用TypeScript实现了,初版在这里,后续我添加了一些语法,比如递归、分支等,具体仓库请看这里。
待续…
相关网址:
- https://github.com/keithnull/TeachYourselfCS-CN
- https://www.google.com.hk/search?q=Crafting+Interpreters+%E4%B8%AD%E6%96%87
- https://www.zhihu.com/question/265364484
- https://github.com/ruanyf/free-books
- https://github.com/FoooooooF/craftingInterpretersCN
- https://www.dart-china.org/t/topic/1465
- https://github.com/jarontai/dash
- https://craftinginterpreters.com/contents.html