만들면서 배우는 인터프리터
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

작가정보
저자(글) 하야시 하루히코
저자 하야시 하루히코는 일본에서는 명쾌입문, 실용 마스터 시리즈를 비롯해 다양한 책을 집필한 베스트셀러 저자다.
번역 김성재
역자 김성재는 자바로 프로그래밍을 시작했지만 현재는 기술 분야 번역을 주로 한다. 평소 관심 분야는 IT 기술과 일본어 교육 콘텐츠 등이다. 최근에는 업무에 필요한 맥 OS 및 iOS 애플리케이션 환경 구축에 관심을 두고 있다.
목차
- 지은이의 말
옮긴이의 말
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 함수명 목록
출판사 서평
이 책이 제시하는 핵심 내용
인터프리터를 만들면서 컴파일러 이론을 배우고 인터프리터 작성 원리를 학습한다.
어떤 독자를 위한 책인가?
●컴파일러 이론에 대해 관심이 많고 인터프리터(스크립트 언어)를 만들어보고 싶은 개발자
●컴파일러 수업을 듣는 컴퓨터 공학과 2~3학년 학생
도서 특징(책 표지 글)
-. 컴파일러 학습과 인터프리터 제작을 한 번에 끝낸다
C++ 언어를 이용해 BBI라는 인터프리터를 단계별로 완성한다. 인터프리터는 한 번에 번역하는 과정을 거치는 컴파일러와 달리, 사용자가 입력하는 코드를 실시간으로 한 줄씩 동시통역하는 언어처리 프로그램이다. 번역은 통역과 공통된 부분도 있지만, 다른 부분도 있다. 이 책에서는 문법 표현, 어휘 분석, 수식 분석과 같은 컴파일러 이론과 공통된 부분에서부터 인터프리터 처리에 특화된 부분까지 모두 설명하고 있다. 따라서 컴파일러 이론이 실제로 어떻게 구현되는지 학습하면서 자신만의 인터프리터를 만들어볼 수 있다.
-. BBI 인터프리터(Basic과 ruBy를 닮은 Interpreter)
이 책에서 모델로 개발할 BBI 인터프리터는 CCI-C 컴파일러의 앞 단계에 해당하는 처리계라는 의미도 있다. 전체를 파악할 수 있을 정도로 작지만 인터프리터의 기본 개념을 대부분 설명할 수 있을 정도로 충실한 언어 구현 모델이다. 초보자에게 필요한 것이 하나의 소스 프로그램에 충분히 채워져 있고 BASIC과 RUBY를 닮아 더욱 매력적인 BBI 인터프리터를 직접 만들어 볼 수 있다.
-. 미니 전자 계산기 프로그램 만들기
재귀적 하향 구문 분석 루틴을 이용해 미니 전자 계산기 프로그램을 만든다. 이 프로그램은 인터프리터 기술에도 통용되는 것으로, 어휘 분석이나 식 분석의 기본이 되는 기법이 들어 있다. 머리에 쏙 들어올 정도로 간결한 소재이고 식 분석 방법을 이해할 수 있을 만큼 주요 기능을 포함하고 있다.
【주요 내용】
● 문법 표현
● 인터프리터의 구성
● 가상 스택 머신
● BBI 인터프리터 언어 사양
● 어휘 분석과 토큰 추출
● 역폴란드 표기법 프로그램
● 전자 계산기 프로그램
● 구문 분석과 구문 트리
● 선언 처리와 심볼 테이블
● 함수 호출과 함수 처리
● 멀티 스테이트먼트
● C++ 핵심 정리
● BBI 인터프리터 전체 소스 코드
지은이의 말
이 책은 인터프리터를 스스로 개발하려는 사람을 위한 입문서로 순수하게 인터프리터 언어 개발 기법을 설명한다. 인터프리터는 컴파일러와 비교하여 어느 정도 부담 없이 개발할 수 있다. 그 이유는 컴파일러는 프로그램 실행에 관한 정보를 생성하는 출력 코드에 모두 반영해야 하지만 인터프리터는 실행에 관한 정보 대부분을 인터프리터 내부에서 관리하기 때문이다.
하지만 큰 부담 없이 개발할 수 있다고 해도 인터프리터 개발이 그리 간단한 건 아니다. 컴파일러만큼은 아니라도 역시 깊이가 있으므로 아무 지식도 없는 사람이 의욕만 앞세워 개발하긴 어렵다. 역시 처음에는 관련 지식을 습득해둘 필요가 있다.
인터프리터 개발은 기본적으로 컴파일러 개발과 같은 이론을 사용한다. 컴파일러 개발 기법에서 어휘 분석이나 구문 분석 분야는 잘 연구되어 있고 이론서도 많다. 이런 책은 이론을 자세히 설명하고 요점을 가르쳐주므로 인터프리터를 개발할 때도 컴파일러 이론서 한 권쯤은 읽어두는 것이 좋다.
물론 이런 전문 서적을 읽는다고 인터프리터를 개발할 수 있느냐면 그렇게 간단하지 않다. 우선, 이론서는 어디까지나 이론에 대한 설명이므로 실제 개발, 즉 구현 방법에 대해서는 자세히 설명하지 않는 것이(설명할 페이지 수가 없는 것이) 보통이다. 또한, 이론의 적용 대상은 컴파일러라서 인터프리터 개발 기법을 설명하지 않는다. 아무래도 인터프리터는 이론 탐구의 본 주제로 다루기 어려운 부분이 있다. 이런 점에서 초보자가 인터프리터 개발 기법을 배우기는 쉽지 않으며 인터프리터 코드를 눈으로 볼 기회도 거의 없으리라 생각된다.
이 책은 그런 입문자의 길잡이가 되도록 실용적이고 적절한 처리계(*역자주: 프로그램을 언어 사양에 기초해 구현하는 컴파일러나 인터프리터 같은 소프트웨어)를 실제로 개발하면서 인터프리터 이론과 개발 기법을 설명한다. 이때 모델로 개발할 언어는 BASIC이나 Ruby, C 등 사용자가 많은 언어의 지식이 통용되는 미니 기능판으로 하고 다음을 필수 조건으로 고려했다.
● 소스 프로그램은 완전한 버전이다(소스를 컴파일하면 제품이 만들어진다).
● 프로그램은 전체를 어려움 없이 살펴볼 수 있을 정도로 작다.
● 평이하게 설명할 수 있는 범위의 언어 기능이라야 전체를 파악하기 쉽다.
● 하지만 인터프리터의 본질적인 구조를 습득할 수 있을 만큼의 복잡함은 필요하다.
이처럼 평이하고 작지 않으면, 혼란스럽지만 언어의 본질적인 구조를 회피한 간단한 인터프리터로는 의미가 없다는 생각에서 타협안을 고려했다.
이 책은 인터프리터의 기본 구조를 친절하게 설명한다. 인터프리터의 기본 구조는 바로 이 책의 핵심이다. 그리고 필요에 따라 컴파일러일 때는 어떻게 한다는 관련 지식도 소개한다. 그 이유는 인터프리터를 컴파일러 관련 기술로 습득하는 편이 적절하다고 생각하기 때문이다. 또한, 인터프리터의 기능을 확장해 완성판으로 만들어 가는 데 도움이 되는 아이디어도 책의 곳곳에서 설명한다.
인터프리터 개발서도 나름대로 어려운 내용이 되기 십상이지만 즐기면서 인터프리터를 개발할 수 있는 편안한 분위기가 되게끔 배려했다. 이 책에서 설명하는 것은 인터프리터 구현의 한 방법이므로 이론을 습득하고 나면 독자의 자유로운 발상대로 구현할 수 있다. 인터프리터 개발은 즐겁다. 기발한 구현 방법을 찾아내는 과정을 즐겨보라. 이 책을 읽고 난 독자가 ‘직접 인터프리터를 만들어보고 싶다. 이거라면 나도 인터프리터를 만들 수 있지 않을까?’라고 느낄 수 있게 되면 기쁘겠다.
_2011년 12월 22일 하야시 하루히코
옮긴이의 말
번역할 책을 받아 들고 문득 어린 시절 컴퓨터를 배우던 때가 생각났습니다. 그때 처음 배웠던 언어는 BASIC이었는데, 화면에 원하던 결과가 표시되는 재미에 시간이 가는 줄도 모르고 한 줄 한 줄 코드를 입력하고 바꿔보고 시험하길 되풀이했습니다. 그러면서 한편으로는 내가 입력한 프로그램을 어떻게 컴퓨터가 알아듣고 실행해주는지 궁금했습니다.
이처럼 프로그래밍을 접해본 사람이라면 한 번쯤 자신이 입력한 프로그램을 해석하고 실행해주는 ‘프로그래밍 언어’가 어떻게 만들어졌는지 궁금해한 적이 있을 겁니다. 그리고 자신이 만든 언어로 컴퓨터와 대화해보고 싶다는 생각을 해본 사람도 있을 겁니다. 이 책은 그런 분들을 위해 프로그래밍 언어 개발에 꼭 필요한 부분만을 추려내 설명함으로써 언어의 구조와 동작 방식을 이해할 수 있게 도와줍니다. 특히, 프로그래밍 언어 개발 서적 중에선 드물게 인터프리터 언어에 대해 다루고 있어, 컴파일러 방식 언어보다 고려해야 할 사항이 상대적으로 적어 수월하게 학습을 진행할 수 있다는 게 이 책의 특징입니다.
또한, 실행 가능한 완전한 소스를 제공하고 개발에 필요한 사고 방식과 구현 방법을 설명하므로 소스 코드를 통해 전체적인 모습을 파악하면서 학습을 진행할 수 있습니다. 저자의 말처럼 이 책에서 만들어갈 언어는 단순한 사양이지만 기본적으로 필요한 기능들은 제대로 갖추고 있습니다. 학습 과정을 통해 프로그래밍 언어의 구조와 동작 방식을 이해한다면 좀 더 효율적인 응용 프로그램 작성에도 도움이 되리라 생각합니다.
개인적으로는 지금까지 막연하게 ‘언젠가 공부해보고 싶다’고만 생각했지 어디서부터 시작해야 할지 몰랐던 프로그래밍 언어 개발을 이 책을 통해 간접적으로나마 체험해볼 수 있었던 것은 번역 과정에서 얻은 커다란 수확입니다. 평소에 프로그래밍 언어 개발에 관심을 가지고 있는 독자라면 자신만의 프로그래밍 언어 개발에 필요한 지식과 유익한 경험을 얻으실 수 있으리라 믿습니다. 끝으로 부족한 원고를 꼼꼼하게 교정하고 좋은 책으로 만드는데 수고해주신 모든 분들께 감사 드립니다.
_2012년 9월 김성재
관련 도서
『컴파일러 구조와 원리』(한빛미디어, 2010)
『IT EXPERT, 64비트 멀티코어 OS 원리와 구조 1,2』(한빛미디어, 2010)
기본정보
ISBN | 9788979149043 ( 8979149042 ) | ||
---|---|---|---|
발행(출시)일자 | 2012년 10월 20일 | ||
쪽수 | 304쪽 | ||
크기 |
153 * 224
* 30
mm
/ 540 g
|
||
총권수 | 1권 | ||
원서명/저자명 | 明快入門インタプリタ開發 基本技術から處理系の實裝まで/林晴比古 |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립