도서소개
세상에는 두 종류의 프로그래머가 있다.
컴파일러를 아는 프로그래머와
컴파일러를 모르는 프로그래머!
컴파일러 이론은 방대하고 난이도가 높아 많은 학생들이 포기하기 쉬운 주제이다. 하지만 내공 있는 프로그래머가 되려면 반드시 컴파일러의 구조와 동작을 이해해야 한다. 30년에 걸쳐 컴파일러를 강의한 저자의 경험과 노하우를 바탕으로 최대한 쉽게 설명하였으므로 수준 높은 프로그래머를 꿈꾸는 많은 독자들에게 꼭 필요한 컴파일러 기본서로 자리매김할 수 있을 것이다.
※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.
도서목차
Chapter 01 컴파일러의 개요
01 컴파일러의 필요성
02 프로그래밍 언어
1 수치 계산용 언어
2 사무 처리용 언어
3 인공지능 언어
4 시스템 프로그래밍 언어
5 기타 언어
6 프로그래밍 언어의 기본 개념
03 번역기의 종류
Chapter 02 간단한 컴파일러의 구조
01 컴파일러의 논리적 구조
1 개요
2 논리적 구조
02 컴파일러의 물리적 구조
Chapter 03 형식 언어와 유한 오토마타
01 형식 언어
02 형식 문법
03 문법 표기법
1 정규 표현
2 문법 도표
3 BNF 표기법
4 EBNF 표기법
04 유한 오토마타
1 유한 오토마타
2 NFA에서 DFA로의 변환
3 DFA의 상태수 최소화
4 정규 문법, 정규 표현, 유한 오토마타의 동치 관계
Chapter 04 어휘 분석
01 어휘 분석의 개요
02 토큰의 인식
1 식별자의 인식
2 예약어의 인식
3 정수의 인식
4 실수 상수의 인식
5 주석 처리
03 어휘 분석기의 설계 및 구현
Chapter 05 문맥자유 문법과 푸시다운 오토마타
01 문맥자유 문법
02 파스 트리
03 모호한 문법
04 문법 변환
1 불필요한 생성 규칙의 제거
2 ε-생성 규칙의 제거
3 단일 생성 규칙의 제거
4 좌인수분해
5 좌재귀의 제거
05 푸시다운 오토마타
Chapter 06 구문 분석
01 구문 분석의 개요
02 하향식 구문 분석
1 FIRST와 FOLLOW
2 재귀적 하강 구문 분석
3 예측 구문 분석
03 상향식 구문 분석
1 이동-감축 구문 분석
2 연산자 우선순위 구문 분석
3 LR 구문 분석
04 모호한 문법의 사용과 에러 처리 루틴
Chapter 07 의미 분석과 형 검사
01 의미 분석의 개요
02 기호표
03 속성 문법
04 형 검사
1 자료형의 종류
2 형 시스템
3 형 변환
Chapter 08 중간 언어와 중간 코드 생성
01 중간 언어
1 중간 언어의 개념
2 중간 언어의 종류
02 구문 지시적 번역
03 중간 코드 생성
1 논리식
2 치환문
Chapter 09 구조적 자료형과 실행 시간 환경
01 구조적 자료형
1 레코드
2 배열
02 메모리 구성
03 메모리 할당 전략
1 정적 메모리 할당
2 스택 메모리 할당
3 힙 메모리 할당
04 매개변수 전달 방법
1 값 호출
2 참조 호출
3 이름 호출
4 값-결과 호출
Chapter 10 코드 최적화
01 코드 최적화
02 기본 블록과 흐름 그래프
1 기본 블록
2 제어 흐름 그래프와 DAG
3 흐름 분석
03 최적화 기법
1 핍홀 최적화 기법
2 지역 최적화 기법
3 루프 최적화 기법
4 전역 최적화 기법
5 기계 종속적 최적화 기법
Chapter 11 병렬성과 지역성을 위한 최적화
01 병렬 처리
1 병렬 처리 시스템
2 병렬 처리에 대한 여러 가지 개념
02 자료 종속과 자료 종속 분석
1 자료 종속
2 자료 종속 분석
03 루프 변환
1 루프 융합
2 루프 분리
3 루프 역순
4 루프 교환
5 루프 기울임
6 스트립 마이닝
7 루프 타일링
Chapter 12 목적 코드 생성
01 목적 코드 생성의 개념
02 트리-패턴 매칭 기법
03 목적 코드 생성
1 산술식에 대한 목적 코드 생성
2 논리식에 대한 목적 코드 생성
04 레지스터 할당과 배정
1 지역 레지스터 할당과 배정
2 전역 레지스터 할당과 배정
3 그래프 착색에 의한 레지스터 할당
Chapter 13 렉스와 야크
01 렉스와 야크
1 렉스
2 야크
02 렉스와 야크의 입력 파일 형식
1 렉스의 입력 파일 형식
2 야크의 입력 파일 형식
03 플렉스와 바이슨 설치 방법
04 플렉스 사용법
05 바이슨 사용법
해시태그
#컴파일러의 #이해