A Tree-Walk Interpreter
Với phần này, chúng ta bắt đầu với jlox, trình thông dịch đầu tiên trong hai trình thông dịch mà ta sẽ xây dựng. Programming languages là một chủ đề cực kỳ rộng, chất đầy khái niệm và thuật ngữ mà bạn sẽ phải nhồi nhét vào đầu cùng một lúc. Programming language theory đòi hỏi một mức độ tư duy chặt chẽ mà có lẽ bạn chưa phải huy động kể từ kỳ thi cuối kỳ môn calculus lần cuối. (May mắn thay, trong cuốn sách này thì phần lý thuyết không quá nhiều.)
Việc hiện thực một interpreter đòi hỏi một vài thủ thuật kiến trúc và design pattern vốn không thường gặp trong các loại ứng dụng khác, vì vậy chúng ta cũng sẽ làm quen dần với khía cạnh engineering. Với tất cả những điều đó, ta sẽ giữ cho phần code cần viết đơn giản và rõ ràng nhất có thể.
Chỉ với chưa tới hai nghìn dòng code Java gọn gàng, chúng ta sẽ xây dựng một interpreter hoàn chỉnh cho Lox, hiện thực đầy đủ mọi tính năng của ngôn ngữ, đúng như những gì ta đã đặt ra. Vài chương đầu sẽ lần lượt đi qua các giai đoạn của interpreter — scanning, parsing, và evaluating code. Sau đó, ta sẽ bổ sung các tính năng ngôn ngữ từng bước một, biến một chiếc máy tính bỏ túi đơn giản thành một scripting language đầy đủ.