II

树遍历解释器

从这一部分开始,我们将构建 jlox,我们的两个解释器中的第一个。编程语言是一个巨大的话题,包含着大量的概念和术语,需要你一次性塞进大脑。编程语言理论需要一定程度的智力严谨性,这可能自你上次微积分考试以来你从未体验过。(幸运的是,本书中并没有太多理论。)

实现一个解释器使用了一些在其他类型的应用程序中不常见的架构技巧和设计模式,因此我们也将习惯于事物的工程方面。鉴于所有这些,我们将尽可能保持我们必须编写的代码简单明了。

在不到两千行简洁的 Java 代码中,我们将构建一个完整的 Lox 解释器,它实现了语言的每一个特性,完全按照我们的规范。前几章按顺序介绍了解释器的各个阶段扫描解析评估代码。之后,我们将一次添加一个语言特性,将一个简单的计算器扩展成一个功能齐全的脚本语言。