II

트리 순회 인터프리터

이 파트에서는 우리가 만들 두 개의 인터프리터 중 첫 번째인 jlox를 시작합니다. 프로그래밍 언어는 방대한 주제이며, 수많은 개념과 용어를 한 번에 머릿속에 채워 넣어야 합니다. 프로그래밍 언어 이론은 마지막 미적분학 시험 이후로 아마 사용해본 적이 없을 정도의 정신적 엄밀함을 요구합니다. (다행히 이 책에는 이론이 너무 많지는 않습니다.)

인터프리터를 구현하는 과정에서는 다른 종류의 애플리케이션에서는 흔치 않은 몇 가지 아키텍처적 기법과 디자인 패턴을 사용하므로, 우리는 엔지니어링 측면에도 익숙해질 것입니다. 이 모든 점을 고려하여, 우리가 작성해야 할 코드는 가능한 한 간단하고 명료하게 유지할 것입니다.

2,000줄 미만의 깔끔한 Java 코드로, 우리는 명시된 바와 같이 Lox 언어의 모든 기능을 구현하는 완전한 인터프리터를 만들 것입니다. 처음 몇 장에서는 인터프리터의 단계인 스캐닝, 파싱, 그리고 코드 평가를 앞에서부터 차례로 다룹니다. 그 후에는 간단한 계산기를 완전한 스크립팅 언어로 발전시키면서 언어 기능을 하나씩 추가해 나갈 것입니다.