이 책은 프로그래밍 언어의 주요 이론과 원리를 학습하고 실습해볼 수 있도록 구성되어 있다. 보통의 프로그래밍 언어론 주제의 책은 개념 위주의 설명만 되어 있어 실제로 어떻게 프로그램 언어가 구현되는지에 대해서는 학습해볼 기회가 없었다.
이 책에서는 저자가 직접 설계한 샘플 언어인 ‘언어 S'를 사용하여 설명하고 있다. 이를 통해 프로그래밍 언어론의 주요 개념들을 학습하고, 제공하는 실습문제를 해결하면서 실제로 독자들도 각자의 프로그래밍 언어를 설계, 구현해 볼 수 있다.
각각의 수식 문법을 구문 트리 형태로 나타내어 파싱 과정을 명시적으로 보여주면서 쉽게 설명하도록 구성되어 있다. 이외에도 구문 다이어그램이나 순서도 등 다양한 그림을 사용하여 어려운 개념을 쉽고 간단하게 설명한다. 또한 이 책을 수업의 교재로 사용하는 교수자 분들에게 질 좋은 강의 자료를 제공한다.
창병모 교수
1995년 ~ 현재 숙명여자대학교 소프트웨어학부 교수
1994년 KAIST 전산학과 공학박사
1990년 KAIST 전산학과 공학석사
1988년 서울대 컴퓨터공학과 공학사
CHAPTER 01 서론
1.1 프로그래밍 언어란 무엇인가?
1.2 프로그래밍 언어의 종류
1.3 프로그래밍 언어의 역사
1.4 추상화와 명령형 언어의 발전
1.5 프로그래밍 언어의 정의 및 구현
CHAPTER 02 구문법
2.1 구문 및 문법
2.2 유도
2.3 모호성
2.4 BNF와 구문 다이어그램
2.5 재귀 하강 파싱
2.6 파싱 이론(고급 주제)
CHAPTER 03 언어 설계와 파서 구현
3.1 프로그래밍 언어 S
3.2 추상 구문 트리
3.3 어휘 분석기
3.4 파서 구현
CHAPTER 04 변수 및 유효범위
4.1 변수 선언
4.2 블록 구조 언어
4.3 변수의 상태와 시맨틱스
4.4 변수의 유효범위 관리
4.5 구현
CHAPTER 05 의미론
5.1 수식의 의미
5.2 구조적 프로그래밍
5.3 문장의 의미
5.4 언어 S의 인터프리터 구현
CHAPTER 06 자료형
6.1 자료형 개요
6.2 복합 타입
6.3 사례 연구
6.4 형변환
6.5 타입과 언어의 분류
CHAPTER 07 타입 시스템
7.1 타입 오류와 타입 검사
7.2 타입 시스템 개요
7.3 언어 S의 타입 시스템
7.4 타입 검사 구현(고급 주제)
CHAPTER 08 함수
8.1 함수 정의
8.2 매개변수 전달
8.3 함수와 바인딩
8.4 함수의 타입 검사
8.5 함수 구현
CHAPTER 09 함수 구현
9.1 함수 호출 구현 원리
9.2 인터프리터에서 함수 구현
9.3 컴파일러에서 함수 구현
CHAPTER 10 예외 처리
10.1 예외 및 예외 처리
10.2 Python 예외
10.3 Java 예외
10.4 예외 검사 및 예외 선언
CHAPTER 11 객체와 클래스
11.1 객체지향 언어
11.2 Java 클래스
11.3 캡슐화
11.4 정적 변수 및 정적 메소드
11.5 제네릭
11.6 Python의 클래스
11.7 C++ 객체 및 클래스
CHAPTER 12 상속
12.1 상속
12.2 Java 상속
12.3 상속과 접근 제어
12.4 추상 클래스
12.5 C++ 상속
12.6 Python 상속
12.7 구현
CHAPTER 13 함수형 언어(고급 주제)
13.1 함수형 언어의 소개
13.2 람다 계산
13.3 Scheme
13.4 ML
이 교재는 프로그래밍 언어론의 주요 주제인 구문법, 시맨틱스, 타입 시스템, 함수, 객체지향 언어, 함수형 언어 등에 대해서 주로 다루고 있으며 프로그래밍 언어론의 한 학기 교재로 사용될 수 있다. 특히 샘플 언어를 설계하고 이를 중심으로 구문법, 시맨틱스, 타입 시스템, 함수 등을 학습하면서 이를 실제로 인터프리터에 구현하는 방식으로 구성되었다. 뿐만 아니라 이러한 주제에 대해서 인터프리터 구현을 중심으로 실습할 수 있도록 다양한 수준의 실습 문제를 제공하고 있다.
이 교재를 활용함으로써 프로그래밍 언어의 원리와 그 구현을 정확하게 이해하고 이를 관련 분야에서 활용할 수 있는 능력이 배양되기를 기대한다.