확장메뉴
주요메뉴


컴파일러 구조와 원리
중고도서

컴파일러 구조와 원리

정가
30,000
중고판매가
63,000
상태?
최상 새 상품에 가까운 상품
YES포인트
구매 시 참고사항
  • 중고샵 판매자가 직접 등록/판매하는 상품으로 판매자가 해당 상품과 내용에 모든 책임을 집니다.

품목정보

품목정보
발행일 2010년 09월 10일
쪽수, 무게, 크기 616쪽 | 1086g | 188*235*35mm
ISBN13 9788979147681
ISBN10 8979147686

중고도서 소개

최상 새 상품에 가까운 상품

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

저자 소개 관련자료 보이기/감추기

저자 : 아오키 미네로우
문과계열을 전공한 소프트웨어 엔지니어. 주요 저서로는 『Ruby 소스 코드 완전 해설』 『Linux 프로그래밍』이 있다.
http://i.loveruby.net/
역자 : 이영희
현재 노틸러스효성㈜ SE본부의 부장으로 재직 중이며, 품질 및 각종 Tool 관련 업무를 담당하고 있다. 각종 시스템 및 패키지 개발은 물론, ISO/CMMI/SCM 등의 품질관리 구축의 경험을 갖고 있으며 최근에는 주로 Embedded OS 및 보안 솔루션, 각종 디바이스 제어에 관심을 갖고 연구 중이다. 번역서로는 『SE를 위한 제안서 작성법』, 『OS의 구조와 원리』, 『리눅스 커널 2.6 구조와 원리』, 『다이어그램으로 쉽게 배우는 UML』이 있다.

책 속으로 책속으로 보이기/감추기

이 책은 한마디로 컴파일러를 실제로 구축하기 위한 과정을 설명한 책이라고 할 수 있다. 이 책의 특징이나 주요 내용은 서문에 자세히 쓰여 있기 때문에 생략하기로 하겠다.
단지, 역자로서 번역을 해 가면서 느낄 수 있었던 점은 컴파일러의 이론을 다룬 이론서나 해설서가 아니고, 오로지 구축에 목적을 둔 책으로써 프로그램 언어로 쓰여진 소스 코드가 컴퓨터 안에서 어떻게 실행되는지를 순차적으로 설명하고 있어, 컴파일러 스터디를 위한 좋은 책이라고 생각된다.
늘 컴파일러를 사용하면서도 링커, 로더, ELF, 최적화가 무엇인지, dll, lib, h 파일 등이 서로 어떤 연관 관계가 있는지 모르는 경우가 많은데, 이런 부분에 대한 가려움은 다소 해소될 것이다.
또한, x86 아키텍처에서 실제로 움직일 수 있는 코드의 생성을 목적으로 하고 있기 때문에 구축 방법에 대해서도 익힐 수 있으며, 이론 위주가 아닌 실무(실제 구축) 위주이다 보니 책의 내용대로 그대로 따라가다 보면 흥미롭게 배울 수가 있을 것이다.
끝으로, 이 책의 저자는 일본을 대표하는 컴파일러의 권위자 중 한 명이라고 한다. IBM이 컴파일러 프로젝트를 시작할 당시 어드바이스를 구했을 정도로 실력 있는 분이 작성한 실용서인 만큼 구문 해석, 의미 해석, 어휘 해석 등 컴파일러 구축과 관련된 다양한 방면에서 많은 도움이 되리라 믿는다.
- 이영희 ---역자 서문 중에서

'C♭' 언어의 컴파일러를 작성한다. C♭은 C언어를 거의 대부분 지원하며, 포인터 연산 등을 포함하여 C언어의 주요 부분이 모두 구축되어 있다. 즉 장난 삼아 만들어 보는 것이 아니라 '현실적인' 컴파일러를 구축한다.
또, 더 구체적으로 내용을 다루기 위해 이 책에서 작성하는 C♭ 컴파일러는 x86계 CPU상에서 동작하는 Linux를 타깃으로 정했다. x86계 CPU를 선택한 이유는 현재 가장 많이 보급되어 있고, 실제 하드웨어를 구하기가 쉽기 때문이다. 또한, Linux를 선택한 이유는 표준 라이브러리나 프로그램 실행 환경 소스 코드가 모두 공개되어 있어서 혼자서도 얼마든지 구조를 조사할 수 있기 때문이다.
특정 언어나 OS에만 제한하는 것을 싫어하는 저자도 환경을 제한하는 편이(한 발자국 앞으로 나아가려는 의미에서는) 오히려 낫다고 생각한다. 왜냐하면 일반적인 구성을 갑자기 설명하는 것보다는 좀 더 구체적인 환경에 대해 이야기하는 것이 훨씬 간단하고 확실하기 때문이다. 마지막 부분에 일반적인 이야기를 다루자는 의견에 대해서는 찬성하지만, 처음부터 일반적인 이야기를 다루자는 의견에는 찬성하지 않는다.
다음 두 번째 특징에 대해 살펴보자.
이 책은 책 제목인 '컴파일러'라는 단어에만 얽매이지 않고, 컴파일러를 중심으로 한 프로그래밍 언어의 실행 환경, 다시 말해서 컴파일러, 어셈블러, 링커, 하드웨어, 실행 환경 모두를 다룬다.
컴파일러에 따라 구축될 프로그램은 컴파일러와 함께 어셈블러, 링커 프로그램, 하드웨어 이 네 가지가 모두 관련되어 동작한다. 따라서, 컴파일러와 프로그램 동작에 대해 알고 싶으면 당연히 이 네 가지를 모두 이해해야 한다. 그러나 '당연'이라는 말이 점점 성립되기 어려워지고 있는 것도 사실이다.
컴파일러와 어셈블러에 관한 책은 많다. 링커에 관한 책도 조금은 있다. 하지만, 컴파일러와 어셈블러, 링커를 통합하여 일관되게 설명한 책은 없다. 컴파일러에 대해 쓴 책은 구체적인 어셈블리 언어를 다룬 책이 따로 있어야 하고, 어셈블리 언어를 쓴 책은 OS의 실행 환경에 대해서도 다루어야 한다. 또, 링크에 대해 쓴 책은 컴파일러에 대한 내용이 없으면 아무 의미가 없다.
그래서 프로그래밍 언어의 실행 환경을 모두 작성하는 것은 어려워 보이지만, 나는 가능하다고 생각한다. 구체적인 언어와 구체적인 OS, 구체적인 하드웨어에 포커스를 두면 프로그램의 동작을 모두 설명하는 것은 불가능하지 않다. 이 책은 그러한 면에 서 무모한 도전을 한 결과라고 볼 수 있다.
이상이 이 책의 기본 방침이다. 다음과 같은 학습이 필요할 경우 이 책을 권장한다.

● 컴파일러나 인터프리터의 내부가 어떻게 되어 있는지 이해한다.
● C언어 프로그램이 동작하는 구조를 이해한다.
● x86 CPU(Pentium이나 Intel Core, Opteron 등)의 구조를 이해한다.
● Linux에서의 링크·로드와 라이브러리에 대해 이해한다.
● Parse(구문 해석)에 대해 배운다.
● 새로운 프로그램 언어를 만든다.

정리해 보자. 이 책은 프로그래밍 언어와 타깃 머신, OS 환경을 구체적으로 선정하여, 프로그램이 동작하는 구조에 대한 모든 것을 설명한다. 순수하게 컴파일러에 흥미가 있는 사람부터 실용적인 목적이 있는 사람까지 폭 넓게 읽을 수 있는 책이다.

꼭 알아야 하는 사전 지식
이 책을 읽는 독자라면 아래와 같은 지식이 있어야 함을 전제로 한다.

● Java 언어의 기초
● C언어의 기초
● Linux의 기초

이 책에서 작성할 C♭ 컴파일러는 Java로 작성되어 있기 때문에 Java 코드를 읽을 수 있어야 한다. 언어뿐만이 아니라 Collection 등 기본 라이브러리에 대해서도 설명하지 않는다. 미리 학습해 두기 바란다.
또한, 이 책에서 사용할 Java 버전은 5.0이다. 단, generics이나 foreach 문의 Java 5 특유의 기능에 대해서는 처음 나올 때 간단하게 설명을 넣어 두었다. 또, C♭은 C언어의 서브셋이고, 어셈블러를 이해하기 위해서는 C언어 지식이 있는 편이 이해하기 쉬우므로, 가능한 한 C언어도 알아두기 바란다. 세부 사항까지 자세히 알고 있을 필요는 없다. 포인터와 구조체를 조합해서 사용할 수 있을 정도만 이해하고 있으면 충분하다.
마지막으로, Shell의 사용 방법 등 Linux를 사용하는 상식적인 내용에 대해서는 일절 접할 수 없다. 예를 들면 cd, ls, cp, mv와 같은 기본 커맨드의 사용 방법에 대해서는 설명하지 않는다.

몰라도 되는 사전 지식
이 책에서는 아래와 같은 지식은 전제로 하지 않는다.

● 컴파일러나 인터프리터의 구조
● 파서 제너레이터의 사용 방법
● OS에 대한 상세한 지식
● 어셈블리 언어

또, OS나 CPU에 대해서도 알아두어야 할 지식은 거의 요구하지 않는다. Linux에서 Shell을 사용해서 파일을 다룰 수 있고, gcc 커맨드를 사용해서 C언어의 'Hello, World' 프로그램을 컴파일할 수 있을 정도의 실력이면 충분하다.
- 아오키 미네로우(靑木峰郞)
---저자 서문 중에서

출판사 리뷰 출판사 리뷰 보이기/감추기

상품정보안내

  •  주문 전 중고상품의 정확한 상태 및 재고 문의는 PC웹의 [판매자에게 문의하기]를 통해 문의해 주세요.
  •  주문완료 후 중고상품의 취소 및 반품은 판매자와 별도 협의 후 진행 가능합니다. 마이페이지 > 주문내역 > 주문상세 > 판매자 정보보기 > 연락처로 문의해 주세요.

부적합 상품 신고하기 신고하기

  •  구매에 부적합한 상품은 신고해주세요.
  •  구매하신 상품의 상태, 배송, 취소 및 반품 문의는 PC웹의 판매자 묻고 답하기를 이용해주세요.
  •  상품정보 부정확(카테고리 오등록/상품오등록/상품정보 오등록/기타 허위등록) 부적합 상품(청소년 유해물품/기타 법규위반 상품)
  •  전자상거래에 어긋나는 판매사례: 직거래 유도

배송/반품/교환 안내

배송 안내
반품/교환 안내에 대한 내용입니다.
배송 구분 판매자 배송
  •  택배사 : CJ대한통운 (상황에 따라 배송 업체는 변경 될 수 있습니다.)
  •  배송비 : 2,800원 (도서산간 : 5,000원 제주지역 : 5,000원 추가 배송비 발생)
배송 안내
  •  판매자가 직접 배송하는 상품입니다.
  •  판매자 사정에 의하여 출고예상일이 변경되거나 품절이 발생될 수 있습니다.
반품/교환 안내

상품 설명에 반품/교환과 관련한 안내가 있는경우 아래 내용보다 우선합니다. (업체 사정에 따라 달라질 수 있습니다)

반품/교환 안내에 대한 내용입니다.
반품/교환 방법
  •  고객만족센터(1544-3800), 중고샵(1566-4295)
  •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
반품/교환 가능기간
  •  출고 완료 후 10일 이내의 주문 상품
  •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
  •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
반품/교환 비용
  •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
  •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

    단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

    •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
    •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
  •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

    단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

  •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
반품/교환 불가사유
  •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
  •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
  •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
  •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
  •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
  •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상
  •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
환불 지연에
따른 배상
  •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
  • 일시품절 상태입니다.
뒤로 앞으로 맨위로 공유하기