간편결제, 신용카드 청구할인
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (21,600원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (24,300원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (25,110원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (21,600원)
(최대할인 4만원 / 2만원 이상 결제)
Close

마츠모토 유키히로의 프로그래밍 언어 만들기 : Ruby 및 Streem을 통한 언어 제작 과정 살펴보기

원제 : まつもとゆきひろ 言語のしくみ
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 281
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

30,000원

  • 27,000 (10%할인)

    1,500P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서(24)

    • 사은품(1)

    책소개

    Ruby 및 Streem을 통한 언어 제작 과정 살펴보기

    이 책은 하나의 프로그래밍 언어가 만들어질 때, 어떤 고민과 과정을 거쳐야 하는지 알려준다. 먼저 낱말 해석기 및 구문 해석기의 구현부터 시작해 파이프라인 형태의 프로세싱 규칙 만들기, 멀티스레드 구현, 큐 구현, 데이터 타입 설계, 소켓 프로그래밍, 그리고 난수 생성 라이브러리까지 프로그래밍 언어가 가져야 할 기능들을 새로운 언어 'Streem'을 직접 설계하며 설명한다.

    목차

    1장. 어떤 언어를 만들까?
    1-1 언어를 직접 만든다는 것의 가치
    1-2 언어 처리 시스템의 구조
    1-3 가상 머신
    1-4 언어 디자인 입문(전편)
    1-5 언어 디자인 입문(후편)

    2장. 새로운 언어 'Streem'의 설계와 구현
    2-1 추상적 병행 프로그래밍
    2-2 새로운 언어 'Streem'
    2-3 문법 검사기 먼저 만들기
    2-4 이벤트 루프
    2-5 멀티스레드 객체
    2-6 캐시와 심벌
    2-7 추상 구문 트리(AST)로의 변환
    2-8 지역 변수와 예외 처리

    3장. 객체지향 기능 설계
    3-1 여러 가지 객체지향
    3-2 Streem의 객체지향
    3-3 Streem 문법 재검토
    3-4 패턴 매치

    4장. Streem 객체 구현
    4-1 소켓 프로그래밍
    4-2 기본 데이터 구조
    4-3 객체 표현과 NaN Boxing
    4-4 가비지 컬렉션
    4-5 락 프리 알고리즘

    5장. 스트림 프로그래밍의 강화
    5-1 파이프라인 프로그래밍
    5-2 파이프라인 구성 요소
    5-3 CSV 처리 기능
    5-4 시간 표현
    5-5 통계 기초의 기초
    5-6 난수
    5-7 스트림 그래프

    마치면서

    본문중에서

    이 책은 리눅스(Linux) 전문지인 [닛케이(日?) Linux]에서 2014년 4월부터 2016년 12월까지 연재한 "만들면서 배우는 프로그래밍 언어"라는 기사를 정리한 것이다.
    '프로그래밍 언어 만들기' 관련 서적은 시중에 이미 많이 나와 있으며, 나도 이런 주제의 책을 집에 여러 권 갖고 있다.
    '프로그래밍 언어 만들기'라는 종류의 책 대부분은 '프로그래밍 언어의 구현'에 대해 언급한다. 예를 들어 yacc와 lex라는 도구로 어떻게 구문 해석기와 낱말 분석기를 만드는지, 인터프리터를 어떻게 설치하는지 등을 샘플로, 비교적 단순한 언어의 구현을 통해 설명한다.
    프로그래밍 언어 만들기는 실태를 모르는 사람의 입장에서는 상당히 어려운 작업이라 생각하기 쉽지만, 차근차근 계단식으로 접근한다면 그리 어려운 분야는 아니다. 실제 언어 처리기 제작은 대학교의 컴퓨터 과학 전공 수업에서 그렇게 찾기 어렵지 않은 과제다. 젊은 학생들을 대상으로 하는 프로그래밍 콘테스트에서는 자신이 만든 언어로 응모하는 고등학생도 있었다.
    선입견을 없애고 본다면 언어의 설계와 제작은 프로그래머의 지적 도전 과제로 재미있는 분야다. 그런 의미로 이들 '언어 만들기' 부류의 책도 나름 가치가 있을 것이다. 그러나 이런 기존 책에 대해서도 나름대로 불만이 없었던 것은 아니다. 기존 책의 한계는 프로그래밍 언어의 구현에 대한 해설뿐이었다. 샘플로 사용한 언어도 대부분 기존 언어의 단순한 서브셋이 대부분이다. '프로그래밍 언어 만들기' 활동 내에는 더 지적이고 재미있는 도전 과제로서의 '언어 디자인'이라는 부분이 전혀 다뤄지지 않았다.
    어쩔 수 없다는 점은 알고 있다. 한정된 페이지에 필요한 내용을 모두 담는 것도 한계가 있고, 가능한 단순한 사례를 들어야 이해하기 쉽게 전달할 수 있을 것이다. 그리고 기존 언어의 서브셋 레벨이 아닌, 메인 레벨의 언어 설계를 경험한 사람은 그렇게 많지 않다. 거기에 직접 디자인한 언어가 전 세계적으로 사용되는 경험을 한 사람은 더더욱 없다고 해도 과언이 아닐 것이다.
    언어를 어디까지, 어떻게 디자인할지 경험을 통해 말할 수 있는 사람은 없다. 우선 언어 처리를 구현하는 기술의 해설부터 시작하고, 디자인에 대해서는 그다음에 진행하는 게 순서일 것이다.
    이 순서와 반대되는 소수의 예외가 있으니 바로 C++ 설계자인 비야네 스트롭스트룹(Bjarne Stroustrup)이 쓴 [The Design and Evolution of C++](Addison-Wesley, 1994)이다. 이 책은 C++가 왜 현재 이런 모습으로 됐고 지향점이 무엇인지 알 수 있는 귀중한 자료다. 하지만 이 책을 통해 언어의 디자인 방법을 배울 수 있을지 상당한 의문이 든다.
    내가 생각하는 방법의 책이 세상에 없다면 직접 쓰는 수밖에 없다고 생각했다. 다행히도 나는 '세계적으로 사용하는 언어를 설계한 경험'이 있으며, 취미를 뛰어넘은 활동으로 IT 세계에서 쓰는 여러 언어의 설계에 대해서도 지식이 있다. 더욱이 [닛케이 Linux] 에서의 연재를 시작으로 여러 권 집필 경험도 있다. 자화자찬이지만 이 이상 딱 맞는 인재를 어디에서 찾을 수 있겠는가?
    이런 생각을 갖고 [닛케이 Linux] 2014년 4월호부터 연재를 시작했다. 언어를 만들게 된 동기부터 언어 디자인 시 느꼈던 갈등까지, 다른 책에서는 다루지 않은 영역까지 다뤘다고 나름 자부한다.
    하지만 매월 한 번 제출하면 인쇄되는, 수정이 어려운 연재 기고문의 특성상 시간이 지날수록 오류나 필요 없는 내용이 생겼는데 이 책의 내용도 예외는 아니었다.
    연재를 시작할 때 계획 주제는 표 1과 같았지만, 결국 임베디드용 루비인 'mruby'에 대한 내용(2014년 4월호와 6월호 일부)과 이 책의 범위에서 조금 벗어나는 내용에 대한 해설(2014년 9월호부터 11월호)은 이 책에서 빠졌다. 본문 게재 순서도 자연스럽게 연결되도록 변경했으며, Streem 현황에 맞춰 일부는 내용을 수정했다.
    하지만 문장의 구성 등은 연재 당시와 크게 바뀌지 않았다. 해설의 일관성을 유지하고 이해도를 높이기 위해 절이 끝날 때마다 '타임머신 칼럼'을 넣었다. '타임머신 칼럼'은 원고 집필 당시에 향후 일어날 일을 미리 알았다면 '지금은 이렇게 쓸 텐데...'라는, 보충의 의미로 적은 글이다.
    이 칼럼은 미래 예측에 대한 저자의 능력의 한계를 보여주는, 조금은 복잡한 기분이 드는 글이지만 미래는 누구도 알 수 없는 것이라는 마음으로 책에 넣기로 했다.
    그럼 여러분을 '언어의 디자인'의 세계로 안내하겠다.
    ('지은이의 말' 중에서)

    자바(Java)나 파이썬(Python)을 사용하며 이 언어를 만든 제임스 고슬링(James Arthur Gosling)이나 귀도 반 로섬(Guido van Rossum) 등 개발자들은 어떤 과정을 거쳐 이런 언어를 만들었는지 잠시 궁금증을 가져 본 적이 있다.
    하지만 당시 이들이 언어를 만드는 과정에서 어떤 고민을 하고 어떤 시행착오를 겪었는지에 대한 자료나 서적을 발견하지 못했다(지금도 없는 것으로 안다). 대부분의 책은 정립된 결과만 이야기하고 있었다.
    루비(Ruby)의 아버지인 마츠모토 유키히로가 그 판도라의 상자를 열었다.
    이 책은 마츠모토 유키히로가 [닛케이 Linux]에 2014년부터 2016년까지 연재한 글을 한 권으로 엮은 것이다. 여기서 저자는 언어 제작 과정에서의 기획 방향, 어려움 및 이에 대한 해결 과정을 솔직하게 보여준다.
    프로그래밍 언어 구현의 기본인 낱말 해석기 및 구문 분석기의 구현부터 시작해 사용자 편의를 위한 라이브러리 제작까지 다양한 영역을 다루지만, 코드 자체를 해설하기보다는 스토리 중심의 전개를 하고 있어 컴퓨터 과학의 지식이 조금이라도 있다면 어렵지 않게 읽을 수 있다. 특히 이를 위해 새로운 언어인 'Streem'을 기획하고 만드는 과정도 IT 분야에서 일하는 나에게는 신선함으로 다가왔다.
    ('옮긴이의 말' 중에서)

    저자소개

    마츠모토 유키히로 [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    1965년 돗토리현 요나고시 출신으로, 츠쿠바대학교 정보학부를 졸업했다. 프로그래밍 언어 루비(Ruby)의 창시자이며, 프로그래밍 언어 디자인에 능통하다. ㈜네트워크 응용통신연구소의 연구원으로 재직했으며, 재단법인 루비 연합 이사장, PaaS 서비스 회사인 헤로쿠(Heroku)의 책임 아키텍트 등 다수의 직함을 갖고 있다. 삼녀 일남, 개와 고양이 한 마리씩의 아버지이기도 하다. 온천을 좋아하며, 시마네현에 살고 있다.

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    삼성SDS의 SINGLE 개발팀에서 워크플로 개발로 IT 업무를 시작했다. 삼성SDS, 한국후지제록스, NHN Japan(현 LINE Japan)을 거쳐 현재는 SW 개발 품질과 테스팅 자동화 관련 컨설팅 업무를 하고 있다.

    이 상품의 시리즈

    프로그래밍 언어 시리즈(총 26권 / 현재구매 가능도서 25권)

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용