인터프리터를 만들고 싶은가? 그렇다면 이 책은 사지 말라.
만들면서 배우는 인터프리터: 컴파일러 이론으로 만드는 나만의 스크립트 언어
C++ 언어를 이용해 BBI라는 인터프리터를 단계별로 완성한다. 인터프리터는 한 번에 번역하는 과정을 거치는 컴파일러와 달리, 사용자가 입력하는 코드를 실시간으로 한 줄씩 동시통역하는 언어처리 프로그램이다. 번역은 통역과 공통된 부분도 있지만, 다른 부분도 있다. 이 책에서는 문법 표현, 어휘 분석, 수식 분석과 같은 컴파일러 이론과 공통된 부분에서부터 인터프리터 처리에 특화된 부분까지 모두 설명하고 있다. 따라서 컴파일러 이론이 실제로 어떻게 구현되는
- 저자 : 하야시 하루히코
- 번역 : 김성재
- 출간 : 2012-10-12
제목이 주는 중압감에 비해서 책이 얇다. 겨우 300여 페이지. 게다가 판형도 작다. 그래서 부담 없이 읽을 수 있을 것 같나? 적어도 처음 몇 페이지는 그렇다. 인터프리터를 만들기 위한 컴파일러 이론에 대해 비교적 쉽게 설명한다. 딱 거기까지다. 그리고 그 설명이라는 게 쉽게 설명해서 쉽다기보다는, 설명하는 게 별로 없어서 쉬운 거에 더 가깝다.
이 책의 저자는 아주 간단한 스크립트를 만들었다. 그리고 그 코드를 책에 몽땅 적어놨다. 물론, 불친절한 주석이 책의 분량을 매꾼다. 더 최악인 것은, 저자는 C++을 사용한다고 주장하지만, 정작 모든 스타일은 완벽하게 C 스타일이다. 그럼에도 굳이 C++을 사용한 이유는 STL의 컨테이너를 쓰기 위함일 뿐이다. 그나마도, 저자의 코드는 간결함과도 거리가 멀다. 결국, 독자는 짧은 설명을 이해하기 위해 노력해야 하고, 동시에 레거시 코드를 분석하려는 마음가짐이 필요하다.
코드를 따라 치던 나는, 욕을 하며 그만뒀다.
장담컨대, 이 책은 잘 쳐줘도 50페이지 분량이면 충분한 내용을 몇 배로 뻥튀기 해 놓은 것에 불과하다. 상당수는 코드이고, 그도 모자라 상당부분은 사용하지도 않는 C++에 대한 설명을 부록으로 끼워 넣었다.
인터프리터를 만들고 싶은가? 그렇다면 이 책은 사지 말라.