현재 위치
홈상품상세정보
*도서소개
*출판사도서소개
*목차
1장 들어가기
__1.1 왜 이런 걸 배우는가?
____1.1.1 미니 언어는 곳곳에 있다
____1.1.2 언어는 훌륭한 연습이다
____1.1.3 한 가지 더
__1.2 이 책의 구성
____1.2.1 코드
____1.2.2 스니펫
____1.2.3 어사이드
____1.2.4 연습 문제
____1.2.5 디자인 노트
__1.3 첫 번째 인터프리터
__1.4 두 번째 인터프리터
연습 문제
디자인 노트 | 언어 이름 짓기
2장 인터프리터 원정대
__2.1 언어의 구성 요소
____2.1.1 스캐닝
____2.1.2 파싱
____2.1.3 정적 분석
____2.1.4 중간 표현
____2.1.5 최적화
____2.1.6 코드 생성
____2.1.7 가상 머신
____2.1.8 런타임
__2.2 지름길과 대체 경로
____2.2.1 싱글 패스 컴파일러
____2.2.2 트리 탐색 인터프리터
____2.2.3 트랜스파일러
____2.2.4 JIT 컴파일
__2.3 컴파일러와 인터프리터
__2.4 여행을 떠나자!
연습 문제
3장 록스 언어
__3.1 안녕, 록스
__3.2 하이레벨 언어
____3.2.1 동적 타이핑
____3.2.2 자동 메모리 관리
__3.3 데이터 타입
__3.4 표현식
____3.4.1 산술
____3.4.2 비교와 동등성
____3.4.3 논리 연산자
____3.4.4 우선순위와 그룹핑
__3.5 문장
__3.6 변수
__3.7 제어 흐름
__3.8 함수
____3.8.1 클로저
__3.9 클래스
____3.9.1 객체 지향 언어를 추구해야 할 이유가 있을까?
____3.9.2 록스는 왜 객체 지향 언어로 만들었나?
____3.9.3 클래스냐 프로토타입이냐
____3.9.4 록스의 클래스
____3.9.5 인스턴스화 및 초기화
____3.9.6 상속
__3.10 표준 라이브러리
연습 문제
디자인 노트 | 표현식과 문장
2부 | 트리 탐색 인터프리터
4장 스캐닝
__4.1 인터프리터 프레임워크
____4.1.1 에러 처리
__4.2 렉심과 토큰
____4.2.1 토큰 타입
____4.2.2 리터럴 값
____4.2.3 위치 정보
__4.3 정규 언어와 표현식
__4.4 스캐너 클래스
__4.5 렉심 식별하기
____4.5.1 렉시컬 에러 090
____4.5.2 연산자 091
__4.6 길이가 긴 렉심
____4.6.1 문자열 리터럴
____4.6.2 숫자 리터럴
__4.7 예약어와 식별자
연습 문제
디자인 노트 | 암묵적 세미콜론
5장 코드 표현
__5.1 컨텍스트 자유 문법
____5.1.1 문법 규칙
____5.1.2 표기법 개선
____5.1.3 록스 표현식 문법
__5.2 구문 트리 구현
____5.2.1 무지향성 객체
____5.2.2 트리 메타프로그래밍
__5.3 트리 다루기
____5.3.1 표현식 문제
____5.3.2 비지터 패턴
____5.3.3 표현식에 비지터를 적용
__5.4 (적당히) 예쁜 출력기
연습 문제
6장 표현식 파싱
__6.1 모호함과 파싱 게임
__6.2 재귀 하향 파싱
____6.2.1 파서 클래스
__6.3 구문 에러
____6.3.1 패닉 모드 에러 복구
____6.3.2 패닉 모드 진입
____6.3.3 재귀 하향 파서 동기화
__6.4 파서 연결
연습 문제
디자인 노트 | 로직 vs 역사
7장 표현식 평가
__7.1 값을 표현하기
__7.2 표현식 평가
____7.2.1 리터럴 평가
____7.2.2 괄호 평가
____7.2.3 단항식 평가
____7.2.4 참과 거짓
____7.2.5 이항 연산자 평가
__7.3 런타임 에러
____7.3.1 런타임 에러 감지
__7.4 인터프리터 연결
____7.4.1 런타임 에러 리포팅
____7.4.2 인터프리터 실행
연습 문제
디자인 노트 | 정적 타이핑과 동적 타이핑
8장 문장과 상태
__8.1 문장
____8.1.1 문장 구문 트리
____8.1.2 문장 파싱
____8.1.3 문장 실행
__8.2 글로벌 변수
____8.2.1 변수 구문
____8.2.2 변수 파싱
__8.3 환경
____8.3.1 글로벌 변수의 인터프리팅
__8.4 할당
____8.4.1 할당 구문
____8.4.2 할당 시맨틱
__8.5 스코프
____8.5.1 중첩과 섀도잉
____8.5.2 블록 구문과 시맨틱
연습 문제
디자인 노트 | 암묵적 변수 선언
9장 제어 흐름
__9.1 튜링 기계(개요)
__9.2 조건부 실행
__9.3 논리 연산자
__9.4 while 루프
__9.5 for 루프
____9.5.1 디슈가링
연습 문제
디자인 노트 | 구문 슈가 범벅
10장 함수
__10.1 함수 호출
____10.1.1 최대 인수 개수
____10.1.2 함수 호출 인터프리팅
____10.1.3 호출 타입 에러
____10.1.4 애리티 체크
__10.2 네이티브 함수
____10.2.1 시간 측정
__10.3 함수 선언
__10.4 함수 객체
____10.4.1 함수 선언 인터프리팅
__10.5 리턴문
____10.5.1 호출에서 리턴
__10.6 로컬 함수와 클로저
연습 문제
11장 리졸빙과 바인딩
__11.1 정적 스코프
____11.1.1 스코프와 가변 환경
____11.1.2 영속적 환경
__11.2 시맨틱 분석
____11.2.1 변수 레졸루션 패스
__11.3 리졸버 클래스
____11.3.1 블록 리졸빙
____11.3.2 변수 선언 리졸빙
____11.3.3 변수식 리졸빙
____11.3.4 할당식 리졸빙
____11.3.5 함수 선언 리졸빙
____11.3.6 기타 구문 트리 노드의 리졸빙
__11.4 리졸브된 변수의 인터프리팅
____11.4.1 리졸브된 변수 액세스
____11.4.2 리졸브된 변수 할당
____11.4.3 리졸버 실행
__11.5 레졸루션 에러
____11.5.1 잘못된 리턴 에러
연습 문제
12장 클래스
__12.1 OOP와 클래스
__12.2 클래스 선언
__12.3 인스턴스 생성
__12.4 인스턴스 프로퍼티
____12.4.1 겟 표현식
____12.4.2 셋 표현식
__12.5 클래스 메서드
__12.6 this
____12.6.1 잘못된 this 용례
__12.7 생성자와 초기자
____12.7.1 init() 직접 호출
____12.7.2 init()에서 리턴
연습 문제
디자인 노트 | 프로토타입과 파워
13장 상속
__13.1 수퍼클래스와 서브클래스
__13.2 메서드 상속
__13.3 수퍼클래스 메서드 호출
____13.3.1 구문
____13.3.2 시맨틱
____13.3.3 잘못된 super 용례
__13.4 마무리
연습 문제
3부 | 바이트코드 가상 머신
14장 바이트코드 청크
__14.1 바이트코드란?
____14.1.1 AST 탐색의 문제점은?
____14.1.2 그냥 네이티브 코드로 컴파일하면?
____14.1.3 바이트코드란?
__14.2 시작하기
__14.3 명령어 청크
____14.3.1 동적 명령어 배열
__14.4 청크 디셈블링
__14.5 상수
____14.5.1 값 표현
____14.5.2 값 배열
____14.5.3 상수 명령어
__14.6 줄 정보
____14.6.1 줄 정보 디셈블링
연습 문제
디자인 노트 | 개발 중인 언어를 테스트
15장 가상 머신
__15.1 명령어 실행 머신
____15.1.1 명령어 실행
____15.1.2 실행 추적
__15.2 값 스택 조작기
____15.2.1 VM의 스택
____15.2.2 스택 트레이스
__15.3 산술 계산기
____15.3.1 이항 연산자
연습 문제
디자인 노트 | 레지스터 기반의 바이트코드
16장 온 디맨드 스캐닝
__16.1 인터프리터 시동 걸기
____16.1.1 컴파일 파이프라인 열기
____16.1.2 스캐너의 스캐닝
__16.2 한 번에 토큰 하나씩
____16.2.1 토큰 스캐닝
__16.3 록스의 렉시컬 문법
____16.3.1 공백 문자
____16.3.2 주석
____16.3.3 리터럴 토큰
__16.4 식별자와 키워드
____16.4.1 트라이와 상태 기계
연습 문제
17장 표현식 컴파일
__17.1 싱글 패스 컴파일
__17.2 토큰 파싱
____17.2.1 구문 에러 처리
__17.3 바이트코드 내보내기
__17.4 전위식 파싱
____17.4.1 토큰 파서
____17.4.2 괄호로 그룹핑
____17.4.3 단항 음수화
__17.5 중위식 파싱
__17.6 프랫 파서
____17.6.1 우선순위에 따라 파싱
__17.7 청크 덤프
연습 문제
디자인 노트 | 파싱은 파싱일 뿐
18장 값 타입
__18.1 태그 있는 공용체
__18.2 록스의 값과 C의 값
__18.3 동적 타입 숫자
____18.3.1 단항 부정과 런타임 에러
____18.3.2 이항 산술 연산자
__18.4 두 가지 새로운 타입
____18.4.1 논리 not과 거짓
____18.4.2 동등/비교 연산자
연습 문제
19장 문자열
__19.1 값과 객체
__19.2 구조체 상속
__19.3 문자열
__19.4 문자열 연산
____19.4.1 문자열 연결
__19.5 객체 해제
연습 문제
디자인 노트 | 문자열 인코딩
20장 해시 테이블
__20.1 버킷 배열
____20.1.1 로드 팩터 및 래핑된 키
__20.2 충돌 해결
____20.2.1 개별 체이닝
____20.2.2 오픈 어드레싱
__20.3 해시 함수
__20.4 해시 테이블
____20.4.1 문자열 해싱
____20.4.2 엔트리 삽입
____20.4.3 할당 및 크기 조정
____20.4.4 값 조회
____20.4.5 엔트리 삭제
____20.4.6 툼스톤 개수 세기
__20.5 문자열 인터닝
연습 문제
21장 글로벌 변수
__21.1 문장
____21.1.1 print 문
____21.1.2 표현문
____21.1.3 에러 동기화
__21.2 변수 선언
__21.3 변수 읽기
__21.4 할당
연습 문제
22장 로컬 변수
__22.1 로컬 변수 표현
__22.2 블록문
__22.3 로컬 변수 선언
__22.4 로컬 변수 사용
____22.4.1 로컬 변수 해석
____22.4.2 다른 스코프 엣지 케이스
연습 문제
23장 진격과 후퇴
__23.1 if 문
____23.1.1 else 절
__23.2 논리 연산자
____23.2.1 논리 or 연산자
__23.3 while 문
__23.4 for 문
____23.4.1 초기자 절
____23.4.2 조건절
____23.4.3 증분절
연습 문제
디자인 노트 | goto가 그렇게 해로울까?
24장 호출과 함수
__24.1 함수 객체
__24.2 함수 객체로 컴파일
____24.2.1 컴파일 타임에 함수 생성
__24.3 호출 프레임
____24.3.1 로컬 변수 할당
____24.3.2 리턴 주소
____24.3.3 호출 스택
__24.4 함수 선언
____24.4.1 컴파일러 스택
____24.4.2 함수 매개변수
__24.5 함수 호출
____24.5.1 인수를 매개변수에 바인딩
____24.5.2 런타임 에러 체크
____24.5.3 스택 트레이스 출력
____24.5.4 함수에서 리턴
__24.6 리턴문
__24.7 네이티브 함수
연습 문제
25장 클로저
__25.1 클로저 객체
____25.1.1 클로저 객체로 컴파일
____25.1.2 함수 선언 해석
__25.2 업밸류
____25.2.1 업밸류 컴파일
____25.2.2 업밸류 플랫화
__25.3 업밸류 객체
____25.3.1 클로저에서의 업밸류
__25.4 클로즈드 업밸류
____25.4.1 값과 변수
____25.4.2 업밸류 클로징
____25.4.3 오픈 업밸류 추적
____25.4.4 런타임에 업밸류 클로징
연습 문제
디자인 노트 | 루프 변수 클로징
26장 가비지 수집
__26.1 도달성
__26.2 마크-스윕 가비지 수집
____26.2.1 가비지 수집
____26.2.2 디버그 로깅
__26.3 루트 마킹
____26.3.1 불분명한 루트
__26.4 객체 참조 추적
____26.4.1 색 추상화
____26.4.2 회색 객체 워크리스트
____26.4.3 회색 객체 처리
__26.5 미사용 객체 스위핑
____26.5.1 약한 참조와 문자열 풀
__26.6 수집은 언제 하나?
____26.6.1 레이턴시와 스루풋
____26.6.2 자동 조정 힙
__26.7 가비지 수집 버그
____26.7.1 상수 테이블에 추가
____26.7.2 문자열 인터닝
____26.7.3 문자열 연결
연습 문제
디자인 노트 | 세대별 수집기
27장 클래스와 인스턴스
__27.1 클래스 객체
__27.2 클래스 선언
__27.3 클래스 인스턴스
__27.4 겟/셋 표현식
____27.4.1 게터/세터 표현식 해석
연습 문제
28장 메서드와 초기자
__28.1 메서드 선언
____28.1.1 메서드 표현
____28.1.2 메서드 선언 컴파일
____28.1.3 메서드 선언 실행
__28.2 메서드 참조
____28.2.1 바운드 메서드
____28.2.2 메서드 액세스
____28.2.3 메서드 호출
__28.3 this
____28.3.1 this 오용 사례
__28.4 인스턴스 초기자
____28.4.1 초기자 호출
____28.4.2 초기자 리턴값
____28.4.3 잘못된 초기자 리턴
__28.5 호출 최적화
____28.5.1 필드 호출
연습 문제
디자인 노트 | 참신성 예산
29장 메서드와 초기자
__29.1 메서드 상속
____29.1.1 상속 실행
____29.1.2 이상한 수퍼클래스
__29.2 수퍼클래스 저장
____29.2.1 수퍼클래스의 로컬 변수
__29.3 수퍼 호출
____29.3.1 수퍼 액세스 실행
____29.3.2 수퍼 호출을 더 빠르게
__29.4 완전한 가상 머신
연습 문제
30장 최적화
__30.1 성능 측정
____30.1.1 벤치마크
____30.1.2 프로파일링
__30.2 해시 테이블 프로빙을 더 빠르게
____30.2.1 느린 키 래핑
__30.3 NaN 박싱
____30.3.1 숫자는 무엇이고, 숫자가 아닌 것은 무엇인가?
____30.3.2 조건부 지원
____30.3.3 숫자
____30.3.4 nil과 true/false
____30.3.5 객체
____30.3.6 Value 함수
____30.3.7 성능 평가
__30.4 다음 도착지는?
연습 문제
4부 | 부록
A1장 록스의 전체 문법
__A1.1 구문 문법
____A1.1.1 선언
____A1.1.2 문장
____A1.1.3 표현식
____A1.1.4 유틸리티 규칙
__A1.2 렉시컬 문법
A2장 제이록스의 AST 생성기로 만든 자바 클래스 목록
__A2.1 표현식
____A2.1.1 할당 표현식
____A2.1.2 이항 표현식
____A2.1.3 호출 표현식
____A2.1.4 겟 표현식
____A2.1.5 그룹핑 표현식
____A2.1.6 리터럴 표현식
____A2.1.7 논리 표현식
____A2.1.8 셋 표현식
____A2.1.9 super 표현식
____A2.1.10 this 표현식
____A2.1.11 단항 표현식
____A2.1.12 변수 표현식
__A2.2 문장
____A2.2.1 블록문
____A2.2.2 클래스 문장
____A2.2.3 표현문
____A2.2.4 함수 문장
____A2.2.5 If 문
____A2.2.6 print 문
____A2.2.7 return 문
____A2.2.8 변수 문장
____A2.2.9 while 문
B장 예제 코드 실습 안내 by 옮긴이
____B.1.1 시스템 요구 사항
____B.1.2 압축 파일 해제
____B.1.3 환경 변수(PATH)에 컴파일러 경로 추가
____B.1.4 개발 환경(Eclipse) 실행
____B.1.5 맺음말
찾아보기
상품필수 정보
도서명 | Crafting Interpreters 로버트 나이스트롬의 인터프리터 in Java, C | ||
---|---|---|---|
저자,출판사 | 로버트 나이스트롬 / 길벗 | ||
크기 | 188x257x30 | ||
쪽수 | 816 | ||
제품구성 | 0 | ||
발행일 | 2023-11-30 | ||
목차 또는 책소개 | 상세설명참조 |
배송안내
- 배송비 : 기본배송료는 2,500원 입니다. (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다)
- 본 상품의 평균 배송일은 3일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 주문시점(주문순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.]
- 본 상품의 배송 가능일은 3일 입니다. 배송 가능일이란 본 상품을 주문 하신 고객님들께 상품 배송이 가능한 기간을 의미합니다. (단, 연휴 및 공휴일은 기간 계산시 제외하며 현금 주문일 경우 입금일 기준 입니다.)
교환 및 반품안내
- 상품 택(tag)제거 또는 개봉으로 상품 가치 훼손 시에는 상품수령후 7일 이내라도 교환 및 반품이 불가능합니다.
- 저단가 상품, 일부 특가 상품은 고객 변심에 의한 교환, 반품은 고객께서 배송비를 부담하셔야 합니다(제품의 하자,배송오류는 제외)
- 일부 상품은 신모델 출시, 부품가격 변동 등 제조사 사정으로 가격이 변동될 수 있습니다.
- 신발의 경우, 실외에서 착화하였거나 사용흔적이 있는 경우에는 교환/반품 기간내라도 교환 및 반품이 불가능 합니다.
- 수제화 중 개별 주문제작상품(굽높이,발볼,사이즈 변경)의 경우에는 제작완료, 인수 후에는 교환/반품기간내라도 교환 및 반품이 불가능 합니다.
- 수입,명품 제품의 경우, 제품 및 본 상품의 박스 훼손, 분실 등으로 인한 상품 가치 훼손 시 교환 및 반품이 불가능 하오니, 양해 바랍니다.
- 일부 특가 상품의 경우, 인수 후에는 제품 하자나 오배송의 경우를 제외한 고객님의 단순변심에 의한 교환, 반품이 불가능할 수 있사오니, 각 상품의 상품상세정보를 꼭 참조하십시오.
환불안내
AS안내
- 소비자분쟁해결 기준(공정거래위원회 고시)에 따라 피해를 보상받을 수 있습니다.
- A/S는 판매자에게 문의하시기 바랍니다.
이미지 확대보기
Crafting Interpreters 로버트 나이스트롬의 인터프리터 in Java, C
비밀번호 인증
글 작성시 설정한 비밀번호를 입력해 주세요.
확인장바구니 담기
상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?
찜 리스트 담기
상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?