컴파일러추천서적

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
전산학에서 컴파일러 이론은 매우 중요한 부분을 차지하고 있다. 컴파일러 이론의 이해를 위해서는 전산학 전반에 걸친 폭넓은 지식이 필요하다. 때문에 대부분의 전산학생들은 학부 3,4 학년 정도에 이 과목을 배우고 있다. 하지만 어렵다, 트렌디하지 못하다는 이유 등으로 강의 취소를 하는 경우도 생기고 있다.

여기서는 그런 암울한 상황에서 혼자라도 공부하고픈 용감한 독학자를 위해 좋은 안내서를 소개하고자 한다.

DeleteMe 특히 노스모크의 몇 몇 분(지XX씨)을 염두에 두고 이 글을 썼다. 혹시 더 좋은 정보를 아는 분이 계시다면 추가, 수정해주시길 바란다.--김창준
감사합니다. 신분을 노출시키지 않는 배려까지... 하하하.
하하핫, 창준님이 저런 유머를....^^;;;;--자하

컴파일러 교과서들은 대부분 오래 되었다. 새책이 나와도 옛책의 재탕이고, 대학에서도 옛책의 그림자에서 벗어나질 못한다. 왜냐, 교수들이 이 책으로 공부했고, 이 책에 익숙하므로.

대표적인 책이 드래곤 북(Compilers : Principles, Techniques, and Tools(by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman))이라고 불리는 책인데(기념비적인 책이다), 이 책 이후로 컴파일러 이론은 물론 전산학 전반에 많은 발전이 있었다. 하지만, 이 책을 교과서로 쓰는 대다수의 대학에선 70년대의 수업이 진행 중이다. 예를 들어, 컴파일러 교과서 중에서 진정 OOP적으로 컴파일러를 만들어 나가는 책은 (선전과는 달리) 거의 없다.

컴파일러는 매우 재미있고, 또 쓸모가 많은 분야다. 특히 프로그래머들에게는 마술상자와도 같다. 프로그램을 만드는 프로그램과 프로그램을 이해하는 프로그램을 만들고, 또 갖고 놀 수 있는 능력은 상급 프로그래머가 되기 위해 필수적이다.

첫 걸음은 다음의 책이 괜찮다.

Building Parsers With Java by Steven John Metsker

이 책은 Ralph Johnson이 추천사를 써줬다. 컴파일러 만들기에 ExtremeProgramming을 적용한 유일한 책이 아닐까 한다. 작게 시작해서 점차 복잡하게 만들고, 유닛 테스트를 사용한다. 이 책은 컴파일러 이론을 가르친다기보다는 컴파일러를 "재미와 필요에 따라" 만들어보고, 또 갖고 노는 경험을 가능케 해준다. 아주 즐거운 책이다.

다음은 현재 나온 OOP로 구현된 컴파일러책 중에서 가장 낫다고 평가받고 있는 책이다.

Programming Language Processors In Java : Compilers and Interpreters by David A. Watt & Deryck F. Brown

컴파일러 책 중에서 JavaLanguage를 제목에 넣고 있는 책은 많다. 하지만 정말 OOP적으로 구현된 책은 드물다. 이 책이 그런 갈증을 해소해 줄 것이다.

이 정도 이해가 된 상태에서 드래곤 북을 보면 훨씬 수월하고 재미있게, 또 빨리 공부해 나갈 수 있다.


CppLanguage로 된 책도 추천해 주시면 감사하겠습니다. -- 은미르
컴파일러를 CppLanguage로 만드는 것과 JavaLanguage로 만드는 건 같다고 보시면 될듯합니다. CppLanguage로 된 책을 찾지 마시구요, 내용이 좋은 책을 찾으셔야할듯. 어휘/구문분석기 생성툴을 제외하곤 Code 비중도 매우 적으니 신경안쓰셔도 될 듯..


"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>