메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

컴파일러 공부를 시작하기 위한 좋은 출발점

han***

|

2003-01-14

lex와 yacc, 개정판

『lex와 yacc』는 두 가지 중요한 유닉스 프로그래밍 도구인 렉스와 야크를 완전하게 다루고 있는 유일한 책이다. 렉스와 야크는 주로 컴파일러나 인터프리터 개발자가 사용하는 도구이지만, 효율적인 입력 처리와 구문 분석 및 파싱을 원하는 모든 응용프로그래머 또한 유용하게 사용할 수 있다. 특히, 그동안 입력을 분석, 검사, 변환하는 엔진을 별도로 개발해오던 프로그래머들은 이 책을 통해 막강한 두 도구에 대한 사용법과 수반 내용을 철저히 익힘으로써, 까다

  • 저자 : 존 레빈 , 토니 매이슨 , 더그 브라운
  • 번역 : 임백준
  • 출간 : 2002-11-15
lex와 yacc란 단어를 처음으로 들어본 것이 언제인지 기억은 나지 않지만 유닉스에서 사용하는 신기하고도 어려운 물건(?) 쯤으로 생각했던 기억이 있다. 그런데 마침 렉스와 야크에 관한 책이... 그것도 한글로 나왔기에(^^;) 그 동안 쌓아왔던 궁금함을 한번 풀어보고 싶은 마음에 이 책을 보게되었다. 만약 필자와 비슷한 생각을 가지고 있었던 독자라면 처음 몇 장만 읽어보아도 렉스와 야크가 어떤 신기한 일(?)을 하는지 그 궁금함을 해결할 수 있을 것이다. 이 책 내용을 간단히 살펴보자면,



처음 1장에서 3장까지는 렉스와 야크에서 사용되는 용어들을 설명하면서 렉스와 야크의 간단한 사용법과 서로 어떻게 맞물려 돌아가는지 알아볼 수 있는 간단한 예제들을 가지고 설명하고 있다.



4, 5장을 통해 좀더 큰 예제인 메뉴 생성기와 SQL 파서를 처음부터 끝까지 차근차근 만들어보면서 렉스와 야크를 좀 더 유용하고 잘 사용할 수 있는 방법을 배울 수 있다.



6, 7장은 렉스 명세서의 형식과 야크 문법의 구조에 대해 논의하고, 각각에서 사용할 수 있는 특징과 옵션, 그리고 기능에 대해 살펴볼 수 있는 레퍼런스이다.



8, 9장은 야크 문법에 존재하는 충돌(에러)을 찾아 수정하는 방법을 살펴보고, 파서와 어휘 분석기가 에러를 검출하는 방법에 대해서 알아본다.



처음 몇 장을 읽어나가면서 중간에 나오는 예제에 모르는 부분이 간혹 있었는데, 혹시나 주위가 산만한 필자(-.-;)가 앞에서 못보고 지나친 내용이 있었나 열심히 앞부분을 찾아보았다. 하지만, 앞부분 어디에도 그런 내용이 없었고, 그 예제의 뒤에 나오는 내용에서 그 부분을 설명하고 있었다. 처음 몇 장에서 혹 예제에 모르는 부분이 나오더라도 너무 긴장하지 말고, 그 부분을 눈여겨 봐두고 앞으로 계속 전진하기 바란다. ^^a



필자는 리눅스 상에서 gcc를 직접 소스를 다운받아 컴파일(물론 gcc로)해서 사용해본 경험이 있는데 그 때, "닭이 먼저냐? 달걀이 먼저냐?"하는 식의 다음과 같은 의문이 들었다. "흠... 컴파일러가 컴파일러를 만들다니... 음... 그렇다면, 가장 맨 처음에는 컴파일러를 어떻게 만들었을까?"하는 해결할 수 없을 것(?)만 같은 생각이었다.(대부분 이런 비슷한 생각을 해 보았을 것이다.) 하지만, 이 책을 읽고 나서 완전하진 않지만 그 의문에 대한 해결의 실마리를 잡을 수가 있었다.



컴파일러에 대해서 좀 더 알고 싶다거나, 자신만의 컴파일러를 만들어 보고 싶은 독자들은 꼭 한 번 읽어봐도 괜찮을 책이라는 생각이 든다. 아마도, 컴파일러 공부를 시작하기 위한 좋은 출발점이 되어줄 것이다.
닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?