책소개
본 교재는 컴파일러를 효과적으로 구성하기 위한 모든 이론과 방법을 다룬다. 컴파일러의 기능을 논리적 단계로 어휘분석, 구문분석, 의미분석, 중간코드 생성, 코드최적화, 목적코드 생성 등 6단계로 나눌 수 있다. 본 교재는 이러한 논리적 단계를 그대로 따르며 서술하였다. 제1장의 기본개념 설명에 이어서, 제2장부터는 각각의 논리적 단계에 대해서 구체적으로 다루며 이들 단계에서 사용되는 각종 기법과 이론을 자세히 학습하게 된다. 본 교재에서 서술된 컴파일러 구성 이론이나 방법은 모두 예제와 함께 설명된다. 또한 이해를 돕기 위하여 많은 개념을 그림으로 시각화하였고, 보충설명을 달았다. 본 교재에서 소개한 이론을 바탕으로 요즘은 컴파일러 구성을 쉽게 도와주는 소프트웨어가 개발되어 있다. 대표적인 어휘분석기 및 구문분석기 소프트웨어로는 LEX와 YACC 등을 소개하였다.
목차
제1장 컴파일러의 개요
1.1 컴파일러의 필요성
1.2 컴파일러와 인터프리터
1.3 컴파일러의 논리적 구조
1.4 컴파일러의 물리적 구조
1.5 간단한 컴파일러의 예
제2장 형식언어와 오토마타
2.1 형식언어의 기초
2.2 형식문법
2.3 문법의 표기법
2.4 정규언어와 유한 오토마타
제3장 어휘분석
3.1 어휘분석이란?
3.2 어휘분석기의 설계
3.3 어휘분석기의 구현에서의 고려사항
3.4 어휘분석기 생성기인 LEX
3.5 어휘분석기 생성기인 ScanGen
제4장 Context-free 언어와 푸시다운 오토마타
4.1 Context-free 언어와 푸시다운 오토마타
4.2 유도트리
4.3 모호성
4.4 불필요한 생성규칙의 제거
4.5 ε-생성규칙의 제거
4.6 단일 생성규칙의 제거
4.7 Left-factoring
4.8 Left-recursion의 제거
4.9 푸시다운 오토마타
제5장 구문분석
5.1 구문분석의 종류
5.2 Bottomup 구문분석
5.3 Topdown 구문분석
5.4 YACC와 LALRGen
제6장 의미분석과 기호표
6.1 의미분석 개요
6.2 기호표
6.3 기호표의 구성
6.4 상수정의와 의미분석
제7장 중간언어와 중간코드 생성
7.1 중간언어의 개념과 종류
7.2 구문지시적 변환
7.3 중간코드 생성
제8장 코드최적화
8.1 코드최적화의 개념
8.2 실행시간을 짧게 하기 위한 최적화
8.3 소요 기억용량의 최적화
8.4 최적화의 구현
제9장 목적코드 생성
9.1 목적코드 생성의 개요
9.2 산술식의 목적코드 생성
9.3 논리식의 목적코드 생성