인터프리터 관련되어서는 이번에 처음으로 읽어보는거 같다.
책의 제목은
만들면서 배우는 인터프리터이지만
만들어가는 과정을 같이 따라가는 식은 아니고
이미 만들어놓은 인터프리터에 대해서
각 챕터별로 설명을 해놓은 구성인거 같다.
그러다보니
각 챕터별 연관성이 좀 약하다 볼 수 있다.
만들면서 따라가는 식으로 생각하고 책을 읽어가다가는
이게 무슨얘기인가 갸우뚱 할 수도 있다.
또한 인터프리터에 대한 기본적인 지식이 없다면
책을 읽으면서 이해가 안갈수도 있다.
책의 구성은 인터프리터에 대해서 어느정도 지식이 있는 상황에서
만들어놓은 인터프리터를 가지고 각 챕터별로
이런 구성은 이런 규칙으로 해서 이렇게 구성했다
라는 구성의 설명으로 이해가 된다.
해당 인터프리터 소스 자체가 분량이 적은 편이라
책을 보면서 공부한다면
인터프리터에 대해서 아는데 도움이 될 수 있을 것 같다.
제목이 주는 중압감에 비해서 책이 얇다. 겨우 300여 페이지. 게다가 판형도 작다. 그래서 부담 없이 읽을 수 있을 것 같나? 적어도 처음 몇 페이지는 그렇다. 인터프리터를 만들기 위한 컴파일러 이론에 대해 비교적 쉽게 설명한다. 딱 거기까지다. 그리고 그 설명이라는 게 쉽게 설명해서 쉽다기보다는, 설명하는 게 별로 없어서 쉬운 거에 더 가깝다.
이 책의 저자는 아주 간단한 스크립트를 만들었다. 그리고 그 코드를 책에 몽땅 적어놨다. 물론, 불친절한 주석이 책의 분량을 매꾼다. 더 최악인 것은, 저자는 C++을 사용한다고 주장하지만, 정작 모든 스타일은 완벽하게 C 스타일이다. 그럼에도 굳이 C++을 사용한 이유는 STL의 컨테이너를 쓰기 위함일 뿐이다. 그나마도, 저자의 코드는 간결함과도 거리가 멀다. 결국, 독자는 짧은 설명을 이해하기 위해 노력해야 하고, 동시에 레거시 코드를 분석하려는 마음가짐이 필요하다.
코드를 따라 치던 나는, 욕을 하며 그만뒀다.
장담컨대, 이 책은 잘 쳐줘도 50페이지 분량이면 충분한 내용을 몇 배로 뻥튀기 해 놓은 것에 불과하다. 상당수는 코드이고, 그도 모자라 상당부분은 사용하지도 않는 C++에 대한 설명을 부록으로 끼워 넣었다.
인터프리터를 만들고 싶은가? 그렇다면 이 책은 사지 말라.