Introduction of Interpreter
本系列是阅读 <<Crafting Interpreters>> 一书时所做的记录,这是一本讲述实现语言解释器的书,会逐步实现两个完整的解释器。本节介绍本书的第1节 - Introduction,讲述学习解释器的意义、本书的结构、以及分别简述了我们将要实现的解释器。
Fairy tales are more than true: not because they tell us that dragons exist, but because they tell us drogons can be beaten. — G.K. Chesterton
Why Learn This Stuff?
little language 无处不在: little language 也被称为 domain-specific lanuages. 例如:配置文件场景下的json。几乎每个大型程序都会用到一些。虽然推荐的做法是复用前人的工作而非造轮子,但当没有能够满足需求的现有库时,我们仍需创造一些工具。即使复用了别人的工作,也不可避免地需要修bug和维护。
语言是很好的锻炼:实现一种语言是对编程能力的考验,代码复杂且性能至关重要。在实现的过程中,可以不断练习对数据结构和算法地掌控。
最后一个原因:当我们写下第一行代码的时候,我们觉得这是魔法,我们无法想象它是如何实现的。事实是没有魔法,不要畏难,这些都是代码,是可以靠勇敢解读的智慧。