만들면서 배우는 컴파일러 첫걸음 (프로그래밍 인사이트)
Description
“작은 컴파일러를 만들며 익히는 컴파일러 기본기”

컴파일러 개발은 이론적으로도 복잡하고 엔지니어링적으로도 많은 노력이 필요하다 보니 대부분 다가가기를 꺼리게 되는 분야다. 그런데 컴파일러가 처음부터 복잡했던 것은 아니다. 컴퓨터 과학ㆍ공학의 연구ㆍ구현 성과가 쌓이기 전에는 단순하고 작은 언어와 그 컴파일러가 있었고 이런 것들은 만들어 보면서 컴파일러 개발을 익혔고 이 방법은 지금도 어느 정도는 유용하다. 이 책은 교육적 성격의 프로그래밍 언어인 PL/0′ 컴파일러를 개발하면서 컴파일러의 기본적인 이론과 구조, 구현의 기초를 배울 수 있게 안내한다.

이 책에서 배우는 내용
* 컴파일러 개요
* 문법과 언어
* 낱말, 구문, 의미 분석
* 오류 처리
* 간단한 가상 머신과 인터프리터의 예
저자

나카다 이쿠오

中田育男
도쿄 대학 이학부 수학과를 졸업하고 동대학원 수학 물리 계열 연구과 석사 과정을 수료했다. 히타치 제작소 중앙 연구소, 시스템 개발 연구소에서 일하다 박사 취득 후 호세이 대학 교수로 재직했다. 현재 쓰쿠바 대학 명예 교수다.

목차

옮긴이의 글
머리말

1장 컴파일러 개요
1.1 컴파일러란?
1.2 변환 시스템과 통역 시스템
연습 문제

2장 컴파일러의 간단한 예
2.1 후위 표기법
2.2 스택
2.3 간단한 컴파일러의 예
2.4 컴파일러의 이론적 구조
2.5 컴파일러의 물리적 구조
연습 문제

3장 문법과 언어
3.1 배커스 표기법
3.2 구문 도식
3.3 문법과 언어의 형식적 정의
3.4 분석 트리
3.5 PL/0′의 문법
연습 문제

4장 낱말 분석
4.1 문자 읽어 들이기
4.2 낱말 읽어 들이기
4.3 정규 표현과 유한 오토마타
4.4 낱말을 읽어 들이는 프로그램의 예
연습 문제

5장 하향식 구문 분석
5.1 구문 분석 방법의 간단한 역사
5.2 하향식 구문 분석법과 그 문제점
5.3 LL(1) 문법
5.4 재귀적 하향식 구문 분석 프로그램
5.5 문법에서 하향식 구문 분석 프로그램으로
5.6 PL/0′의 재귀적 하향식 구문 분석 프로그램
연습 문제

6장 의미 분석
6.1 의미 분석이란?
6.2 기호 테이블의 정보
6.3 기호 테이블 탐색
6.4 블록 구조와 기호 테이블
6.5 PL/0′ 컴파일러의 기호 테이블
연습 문제

7장 오류 처리
7.1 오류 처리란?
7.2 오류 발견
7.3 오류 정보 출력
7.4 오류 복구
7.5 정상 처리로의 복귀
7.6 PL/0′ 컴파일러의 오류 처리
연습 문제 146

8장 가상 머신과 통역 시스템
8.1 가상 머신이란?
8.2 가상 머신의 기능
8.3 가상 머신의 기억 영역 관리
8.4 가상 기계어로의 변환
8.5 가상 머신 구현(통역 시스템)
8.6 PL/0′ 머신과 PL/0′의 목적 코드
연습 문제

9장 더 공부하려면
10장 PL/0′ 컴파일러의 코드

참고 문헌
연습 문제 해답
찾아보기