1장. 시작하며
1.1 프로그래밍 언어
1.2 컴파일러
1.3 예제 컴파일러
1.4 마치며
2장. 어휘 분석 29
2.1 어휘와 토큰
2.2 어휘 분석기
2.2.1 소스 코드 문자열
2.2.2 어휘의 시작 문자
2.2.3 숫자 리터럴의 시작 문자
2.2.4 문자열 리터럴의 시작 문자
2.2.5 식별자와 키워드의 시작 문자
2.2.6 연산자와 구분자의 시작 문자
2.2.7 숫자 리터럴 어휘
2.2.8 문자열 리터럴 어휘
2.2.9 식별자와 키워드 어휘
2.2.10 연산자와 구분자 어휘
2.3 마치며
3장. 구문 분석
3.1 구문 트리와 노드
3.2 문 분석기
3.2.1 선언 영역
3.2.2 함수의 정의
3.2.3 본문
3.2.4 변수의 선언
3.2.5 본문의 식
3.2.6 식
3.2.7 대입 연산자
3.2.8 논리 or 연산자
3.3 마치며
4장. 인터프리터
4.1 구문 트리 순회
4.2 구문 트리 실행기
4.2.1 엔트리 포인트 함수 호출
4.2.2 함수
4.2.3 print문
4.2.4 데이터 타입
4.2.5 문자열 리터럴
4.2.6 산술 연산
4.2.7 논리 연산
4.2.8 변수의 선언과 참조
4.2.9 for문
4.2.10 if문
4.2.11 continue문
4.2.12 함수 호출
4.2.13 함수호출 인자
4.2.14 return문
4.2.15 내장 함수
4.2.16 배열 리터럴
4.2.17 원소값 참조
4.2.18 원소값 변경
4.3 마치며
5장. 코드 생성
5.1 명령어와 목적 코드
5.2 코드 생성기
5.2.1 엔트리 포인트 함수 호출
5.2.2 함수
5.2.3 print문
5.2.4 문자열 리터럴
5.2.5 산술 연산자
5.2.6 식의 결과값
5.2.7 논리 or 연산자
5.2.8 변수 선언
5.2.9 변수 참조
5.2.10 for문
5.2.11 if문
5.2.12 continue문
5.2.13 함수 호출
5
◈ 이 책의 구성 ◈
◆ 1장: 이 책을 학습하는 데 필요한 내용을 다룬다.
◆ 2장: 소스 코드의 문자열을 분석하는 방법을 다룬다.
◆ 3장: 소스 코드의 구조를 분석하는 방법을 다룬다.
◆ 4장: 소스 코드를 실행하는 인터프리터의 구현 방법을 다룬다.
◆ 5장: 목적 코드를 생성하는 방법을 다룬다.
◆ 6장: 목적 코드를 실행하는 가상머신의 구현 방법을 다룬다. 또한 동적 메모리를 관리하기 위해 마크 앤 스윕이라는 가비지 컬렉터도 간단하게 구현해본다.
◆ 7장(부록: 어셈블리를 통해 컴퓨터의 동작 방식을 알아본다. CPU의 레지스터와 메모리를 직접 조작해 계산해보고 함수도 호출해본다.
◆ 자료: 이 책은 온전히 동작하는 예제 코드를 제공한다. 2장부터 6장까지 각 장에서 다루는 어휘 분석기, 구문 분석기, 인터프리터, 코드 생성기, 가상머신 프로젝트를 제공한다.