규도자 개발 블로그

알라딘 중고서점에서 득템. 컴파일러 원리 기법 도구 (Compilers Principles Techniques, and Tools) 본문

Review/Book

알라딘 중고서점에서 득템. 컴파일러 원리 기법 도구 (Compilers Principles Techniques, and Tools)

규도자 (gyudoza) 2019. 5. 10. 23:17

드래곤북이라고 불리우는 컴파일러 설계에 대한 바이블이 있다.



1986년에 발매된 책으로써 난이도가 괴랄하기로 악명높은 책이기도 하다. 직접 컴파일러를 설계하고 만드는 것에 대한 책인데 20년이 지나서야 개장판이 나왔다.



바로 이 책인데 이 책마저도 중고나 새 책 모두 구하기가 어렵다. 근데 종로 알라딘 중고서점에서 1판의 번역판을 구했다.


이학성이라는 분에게 감사하다. 물론 내용은 2판이 더 풍부하다. 그냥 나는 한 명의 프로그래머로써 절판된 좋은 책을 구했다는 것 자체만으로도 너무 기쁨을 감출 수가 없다. 한국어판 드래곤북은 구글에서 이미지조차 찾기가 힘들더라. 약속 때문에 종로에 가게 된 김에 들려서 이것저것 보다가 우연히 눈에 띄게 돼서 샀는데 너무 신기했다.


컴파일러 제작 및 설계에 대한 부분들은 고수준의 설계 및 코딩을 주로 하는 프로그래머들(본인 포함)에게는 다소 난해하고 필요성을 느끼지 못할 수도 있겠다. 하지만 수학의 심화과정도 결국엔 사칙연산의 응용일 뿐더러 프로그래밍이라는 분야도 새로운 언어와 도구가 아무리 나와도 중요한 본질은 바뀌지 않는다고 생각한다. 양자컴퓨터의 보편화와 같은, 인류의 패러다임을 완전히 바꿔버릴 만한 혁명적인 변화가 이뤄지지 않는 이상 말이다.

 나도 아직 컴파일러에 대한 공부를 해보진 않았다. 하지만 컴파일러에 대한 공부는 결국 프로그램 언어, 한 "언어"를 컴퓨터가 해석하는 과정에 대해서 공부하고 그 해석기를 직접 만들어보는 과정이기 때문에 컴파일러에 대해서 마스터하면 어떤 언어나 도구가 등장한다 하더라도 그 이해에 큰 도움이 된다고 한다. 무엇보다 중요한 건 지금 자기 자신이 실무에 사용하고 있는 언어에 대해서도 큰 이해가 동반된다는 점이겠다.


자동차를 잘 몰라도 자동차에 구성된 외부 인터페이스를 통해 사람은 운전을 할 수 있다. 하지만 황량한 사막의 고속도로를 달릴 때 차가 고장났다면 그 사람은 굉장히 곤란해질 것이다. 만약에 자동차 부품 구성에 대해서 조금만 알면 해결할 수 있는 문제가 원인이었다면 더욱 더 안타까운 상황이다.

 항상 이렇게 배우기 어렵지만 배운다고 해서 크게 티가 나지 않는 지식들은 평소엔 작은 차이만 보여준다. 좀 더 섬세하고, 좀 더 효율적이고, 좀 더 합리적인 방법을 제시하는 것으로 말이다. 하지만 이런 지식들이 진가를 발휘하는 건 평소에 자주 일어나지 않는 치명적인 상황이 아닐까 한다. 또 그런 것들이 쌓여 그 사람의 실력을 평가하는 척도로 이용된다. 그런 의미에서 이번 기회에 컴파일러 또한 공부를 시작해보려 한다. 책의 발견이 좋은 기회가 됐다.

Comments