티스토리 뷰

Google | Nexus One | 4.3mm | 2010:10:19 16:27:27

아오키 미네로우 저, 이영희 역, 『컴파일러 구조와 원리』, 한빛미디어, 2010


이번 한빛 리더스 5번째 리뷰 도서로 선택한 책은 "컴파일러 구조와 원리". 이번 학기에 학교에서 "컴파일러" 과목을 수강하며 컴파일러에 대해서 더 알고 싶어서 선정한 책이다. 어려울 거라는 생각은 전혀 하지도 못했던 지라 이번에도 책을 모두 다 읽진 못했다(ㅠ.ㅠ) 전공 관련 책을 볼 때 일본에서 출간된 책을 번역한 것을 보면 확실히 번역이 다른 언어권 국가의 책을 번역 한 것 보다 깔끔하다. 이번 책 역시 그랬다.

저자의 홈페이지를 찾아가 보니 일본에서 소개된 책의 제목은 "보통의 컴파일러를 만들자"란다. 한빛미디어에서는 "구조와 원리" 라는 다른 책들과 돌림자 맞추기를 한 모양인데, 어쩐지 좀 더 딱딱하게 다가온다. 책의 내용도 C언어 컴파일러를 완전히 구현하는 것이 아닌 몇 가지 기능을 제거하고 몇가지 기능은 구현하기 더 쉽게 바꾼 C♭을 만드는 것이기 때문에 "보통의 컴파일러를 만들자"가 더 와 닿고 센스까지 느껴지는 제목이다.

현재 수강하고 있는 컴파일러 과목에서 교수님이 선택하신 교재는 "컴파일러 입문" 이라는 책 인데 벌써 중간고사 (오늘 오전에 중간고사를 보았다. ㅠ.ㅠ)가 지났음에도 불구하고 언어형식에 대해서만 이야기하고 있다. 이해하기 어렵고, 이해한다고 해도 이게 컴파일러를 만들기와 무슨 상관인지 바로 연관시키기 어렵다. 시험기간 이란 것이 존재해서 교재를 정독 할 기회를 주지 않았다면 영원히 이해하지 못 했을 거다.

이 책은 보통의 학부 커리큘럼에서 다루는 이러한 컴파일러 이론은 다루지 않는다. 대신 컴파일러 제작의 실제적인 모든 내용을 다루고 있다. 컴파일러는 논리적으로 크게 두 가지로 나누어지는데, 어휘 분석과 구문 분석, 중간코드를 생성하는 전단부와 최적화, 목적코드를 생성하는 후단부가 그것 이다. 목차를 확인하면 알 수 있듯이 모든 내용이 이 책에 집약되어 있다. 

책은 컴파일 과정의 앞부분, 어휘 분석하는 단계부터 시작하여 실제 컴파일러를 제작하는 과정에서 어떻게 생각을 하고 왜 저런 코드를 썼는지, 왜 이런 제약사항을 두었는지, 왜 저런 제약사항은 고려하지 않았는지에 대한 설명과 함께 javaCC를 활용한 코드를 보여주기 때문에 책을 읽어나가며 하나하나 배우는 재미를 느낄 수 있다. 딱딱한 이론이 아닌 실제적인 코드를 이용하여 진행하기 때문에 더욱 수월한 느낌. 더군다나 C♭을 제작 하며(비록 C언어 에서 일부 제약을 둔 언어이지만) C언어의 사소한 문법을 이해하는데도 도움이 될 수 있는 책이다.

책을 여러권 번역을 했던 역자여서 그런지 번역은 매우 잘 되어 있다. 하지만 책을 읽으며 아쉬운 점이 있었는데, 번역이 너무 그대로 되어 있다는 점 이다. 한빛미디어의 도서 사이트에서도 예제 소스를 받을 수 있지만 일본어 사이트인 저자 사이트에 가서 소스를 받으라는 설명이 있는 부분이나 일본어 처리에 대한 설명은 있지만 한국어 처리에 대한 설명은 없는 점이 아쉽다. 역자 중에서 이러한 부분에는 역주를 두어 많은 설명을 해주는 분도 있는데, 이 책의 역자가 이런 부분을 배려해 줬다면 더 좋은 번역서가 되었을 꺼라 생각한다. 이 점이 0.2% 아쉬운 부분이다.
댓글
댓글쓰기 폼