한빛미디어

시스템/네트워크

만들면서 배우는 인터프리터: 컴파일러 이론으로 만드는 나만의 스크립트 언어

한빛미디어

번역서

판매중

만들면서 배우는 인터프리터: 컴파일러 이론으로 만드는 나만의 스크립트 언어
좋아요: 35
  • 저자 : 하야시 하루히코
  • 역자 : 김성재
  • 출간일 : 2012-10-12
  • 페이지 : 304쪽
  • ISBN : 9788979149043
  • 물류코드 :1904

합계 : 19,800

도서판매처

  • 컴파일러 학습과 인터프리터 제작을 한 번에 끝낸다
    C++ 언어를 이용해 BBI라는 인터프리터를 단계별로 완성한다. 인터프리터는 한 번에 번역하는 과정을 거치는 컴파일러와 달리, 사용자가 입력하는 코드를 실시간으로 한 줄씩 동시통역하는 언어처리 프로그램이다. 번역은 통역과 공통된 부분도 있지만, 다른 부분도 있다. 이 책에서는 문법 표현, 어휘 분석, 수식 분석과 같은 컴파일러 이론과 공통된 부분에서부터 인터프리터 처리에 특화된 부분까지 모두 설명하고 있다. 따라서 컴파일러 이론이 실제로 어떻게 구현되는지 학습하면서 자신만의 인터프리터를 만들어볼 수 있다.

    BBI 인터프리터(Basic과 ruBy를 닮은 Interpreter)
    이 책에서 모델로 개발할 BBI 인터프리터는 CCI-C 컴파일러의 앞 단계에 해당하는 처리계라는 의미도 있다. 전체를 파악할 수 있을 정도로 작지만 인터프리터의 기본 개념을 대부분 설명할 수 있을 정도로 충실한 언어 구현 모델이다. 초보자에게 필요한 것이 하나의 소스 프로그램에 충분히 채워져 있고 BASIC과 RUBY를 닮아 더욱 매력적인 BBI 인터프리터를 직접 만들어 볼 수 있다.

    미니 전자 계산기 프로그램 만들기
    재귀적 하향 구문 분석 루틴을 이용해 미니 전자 계산기 프로그램을 만든다. 이 프로그램은 인터프리터 기술에도 통용되는 것으로, 어휘 분석이나 식 분석의 기본이 되는 기법이 들어 있다. 머리에 쏙 들어올 정도로 간결한 소재이고 식 분석 방법을 이해할 수 있을 만큼 주요 기능을 포함하고 있다.

    • 문법 표현
    • 인터프리터의 구성
    • 가상 스택 머신
    • BBI 인터프리터 언어 사양
    • 어휘 분석과 토큰 추출
    • 역폴란드 표기법 프로그램
    • 전자 계산기 프로그램
    • 구문 분석과 구문 트리
    • 선언 처리와 심볼 테이블
    • 함수 호출과 함수 처리
    • 멀티 스테이트먼트
    • C++ 핵심 정리
    • BBI 인터프리터 전체 소스 코드
  • [저자] 하야시 하루히코

    일본에서는 명쾌입문, 실용 마스터 시리즈를 비롯해 다양한 책을 집필한 베스트셀러 저자다.

    [역자] 김성재

    기술 분야 전문 번역가. 관심 분야는 IT 기술과 일본어 교육 콘텐츠 등이다. 최근에는 업무에 필요한 맥 OS와 iOS 애플리케이션의 개발과 리뷰, 환경 구축에 관심이 있다. 번역서로는 『만들면서 배우는 기계 학습』, 『빅데이터의 충격』, 『C언어로 배우는 리눅스 프로그래밍』, 『구글 웹로그 분석』(이상 한빛미디어) 등이 있다.

     

  • 지은이의 말옮긴이의 말01장 인터프리터의 기초   1.1 즐기면서 개발한다  1.2 컴파일러와 인터프리터  1.3 인터프리터 구성  1.4 이 책에서 가정한 실행 환경  1.5 이 책에서 개발할 처리계  1.6 BBI 인터프리터의 언어 사양02장 문법 표현  2.1 구문 도표 표기법  2.2 BNF 표기법  2.3 종료 기호와 비종료 기호  2.4 BNF 표기법의 다른 표현  2.5 확장 BNF 표기법  2.6 언어 사양 설계03장 어휘 분석  3.1 단어와 토큰  3.2 어휘 분석 루틴의 역할  3.3 주석 제거  3.4 문자 종류표 설정  3.5 열거 상수값 연구  3.6 토큰 추출04장 내부 코드 변환  4.1 토큰의 단축화  4.2 점프할 곳의 번호 가져오기  4.3 블록 구성  4.4 정적 구문 검사  4.5 내부 코드 저장  4.6 BBI 인터프리터의 오류 처리05장 식의 분석  5.1 식의 표현  5.2 연산자 순위표에 의한 구문 분석  5.3 재귀적 하향 구문 분석  5.4 분석 트리와 구문 트리06장 선언 처리와 심볼 테이블  6.1 심볼 테이블 작성  6.2 심볼 테이블에 등록  6.3 심볼 테이블 탐색  6.4 분석 처리 시작  6.5 변수 선언 처리  6.6 암묵적 변수 선언  6.7 암묵적 변수 선언 금지  6.8 함수 정의 처리07장 구문 검사  7.1 구문 검사의 타이밍  7.2 구문 검사 방법  7.3 구문 검사 지원08장 인터프리터 실행 관리  8.1 프로그램 실행  8.2 코드 추출  8.3 프로그램 종료09장 식의 실행  9.1 일차식 처리  9.2 단항 연산자 처리  9.3 이항 연산자 처리  9.4 상수 폴딩10장 문의 실행  10.1  문과 블록  10.2  블록  10.3  대입문  10.4  while 문  10.5  for 문  10.6  if 문  10.7  break 문  10.8  exit 문  10.9  return 문11장 함수 호출과 함수 처리  11.1  BBI 인터프리터의 함수  11.2  함수 호출 방법  11.3  환경 정보 저장  11.4  프레임 처리  11.5  오퍼랜드 스택과 실행 시간 스택  11.6  함수의 호출 처리  11.7  함수의 입구 처리  11.8  함수의 본체 처리  11.9  함수의 출구 처리12장 내장 함수  12.1  스테이트먼트와 내장 함수 준비  12.2  내장 함수 실행13장 기능 강화 방법  13.1  개요  13.2  데이터형 추가  13.3  문자열 형 처리  13.4  상수 표현  13.5  상수 계산  13.6  초기화 기능  13.7  연산자 추가  13.8  제어문 추가  13.9  표준 함수 추가  13.10 입출력 표준 함수  13.11 멀티 스테이트먼트14장 C++ 핵심 정리  14.1  함수의 다중 정의  14.2  디폴트 인수  14.3  vector 컨테이너  14.4  stack 컨테이너 어댑터  14.5  클래스  14.6  예외 처리15장 BBI 인터프리터 전체 소스 프로그램  15.1  파일 구성  15.2 개발 환경과 동작 확인  15.3 프로그램 코드에 대해서  15.4 함수명 목록

  •  

    • 인터프리터 관련되어서는 이번에 처음으로 읽어보는거 같다.



      책의 제목은

      만들면서 배우는 인터프리터이지만

      만들어가는 과정을 같이 따라가는 식은 아니고

      이미 만들어놓은 인터프리터에 대해서

      각 챕터별로 설명을 해놓은 구성인거 같다.



      그러다보니

      각 챕터별 연관성이 좀 약하다 볼 수 있다.

      만들면서 따라가는 식으로 생각하고 책을 읽어가다가는

      이게 무슨얘기인가 갸우뚱 할 수도 있다.



      또한 인터프리터에 대한 기본적인 지식이 없다면

      책을 읽으면서 이해가 안갈수도 있다.



      책의 구성은 인터프리터에 대해서 어느정도 지식이 있는 상황에서

      만들어놓은 인터프리터를 가지고 각 챕터별로

      이런 구성은 이런 규칙으로 해서 이렇게 구성했다

      라는 구성의 설명으로 이해가 된다.



      해당 인터프리터 소스 자체가 분량이 적은 편이라

      책을 보면서 공부한다면

      인터프리터에 대해서 아는데 도움이 될 수 있을 것 같다.

    • 제목이 주는 중압감에 비해서 책이 얇다. 겨우 300여 페이지. 게다가 판형도 작다. 그래서 부담 없이 읽을 수 있을 것 같나? 적어도 처음 몇 페이지는 그렇다. 인터프리터를 만들기 위한 컴파일러 이론에 대해 비교적 쉽게 설명한다. 딱 거기까지다. 그리고 그 설명이라는 게 쉽게 설명해서 쉽다기보다는, 설명하는 게 별로 없어서 쉬운 거에 더 가깝다.



      이 책의 저자는 아주 간단한 스크립트를 만들었다. 그리고 그 코드를 책에 몽땅 적어놨다. 물론, 불친절한 주석이 책의 분량을 매꾼다. 더 최악인 것은, 저자는 C++을 사용한다고 주장하지만, 정작 모든 스타일은 완벽하게 C 스타일이다. 그럼에도 굳이 C++을 사용한 이유는 STL의 컨테이너를 쓰기 위함일 뿐이다. 그나마도, 저자의 코드는 간결함과도 거리가 멀다. 결국, 독자는 짧은 설명을 이해하기 위해 노력해야 하고, 동시에 레거시 코드를 분석하려는 마음가짐이 필요하다.



      코드를 따라 치던 나는, 욕을 하며 그만뒀다.



      장담컨대, 이 책은 잘 쳐줘도 50페이지 분량이면 충분한 내용을 몇 배로 뻥튀기 해 놓은 것에 불과하다. 상당수는 코드이고, 그도 모자라 상당부분은 사용하지도 않는 C++에 대한 설명을 부록으로 끼워 넣었다.



      인터프리터를 만들고 싶은가? 그렇다면 이 책은 사지 말라.

    • 리눅스 시스템 프로그래밍(개정2판) : 커널과 C 라이브러리로 풀어가는(리눅스 3.x 최신 커널 기반)

      로버트 러브

    • 뇌를 자극하는 윈도우즈 시스템 프로그래밍

      윤성우

    • IT EXPERT 윈도우 시스템 프로그램을 구현하는 기술

      이호동

    • 컴파일러 구조와 원리

      아오키 미네로우

    • Blog2Book, 프로그래머가 몰랐던 멀티코어 CPU 이야기

      김민장

    • 뇌를 자극하는 C++ 프로그래밍

      이현창

    • 이것이 C++이다

      최호성

    • 전문가를 위한 C++ : C++ 11을 대하는 유쾌한 방법(개정판 1권)

      마크 그레고리 , 니콜라스 솔터 , 스캇 클레퍼

    • 전문가를 위한 C++ : C++ 11을 대하는 유쾌한 방법(개정판 2권)

      마크 그레고리 , 니콜라스 솔터 , 스캇 클레퍼

닫기

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