II

樹狀走訪直譯器

在本部分,我們將開始撰寫 jlox,這是我們兩個直譯器中的第一個。程式語言是一個龐大的主題,有大量的概念和術語需要你一次塞進大腦。程式語言理論需要一定程度的心理嚴謹性,這種嚴謹性你可能自上次微積分期末考以來就沒有召喚過了。(幸運的是,本書中沒有太多理論。)

實作直譯器使用了一些在其他類型的應用程式中不常見的架構技巧和設計模式,所以我們也會習慣於工程方面的事情。 鑒於所有這些,我們將盡可能保持我們要編寫的程式碼簡單明瞭。

在不到兩千行的乾淨 Java 程式碼中,我們將為 Lox 建構一個完整的直譯器,它將完全按照我們指定的實現語言的每個單一功能。 前幾個章節從頭到尾地介紹直譯器的各個階段掃描解析求值程式碼。之後,我們一次添加一個語言功能,將一個簡單的計算器發展成一個成熟的腳本語言。