출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

ISBN : 9788970506029 / 712쪽 188 x 257 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
김태유
-
권석만
-
조성호
-
홍지수, 홍은지
- 16,200
- 26,100
- 29,700
- 30,000
출판사 리뷰
1999년 이 책의 초판을 집필하기 시작한 이래 프로그래밍 언어 연구는 빠르게 진화해왔다. 예를 들어, Java는 컴퓨터과학 교과과정에서 주요 언어로 자리 잡았다. 애자일(Agile) 프로그래밍은 일관성 있는 소프트웨어 설계 방식으로 자리 잡고 있으며, 그에 맞는 언어는 전통적인 프로그래밍 방식에 맞는 언어와는 다르다. 소프트웨어 설계에서 정형기법의 사용은 주류로 자리 잡기 시작했으며, 이제 상당히 중요하게 취급받고 있다.
이와 같이 최근에 등장한 새로운 움직임에 발맞추기 위해서, 이 개정판은 현세대와 차세대 프로그래밍 언어 설계에 수반되는 새로운 도전에 부응하도록 기획되었다.
앞부분(2~11장)에서 다루는 언어 설계 원칙을 개정판에서는 대폭 확장하였다. (Python과 Perl과 같은) 현대 언어의 새로운 예를 통한 약식 설명을 추가하였다. (Pascal과 Modula와 같이) 더 이상 널리 사용되지 않는 재래식 언어는 제외하였다.
프로그래밍 언어의 구문구조, 이름, 타입, 의미구조, 함수에 대한 핵심 원리는 2, 4, 5, 7, 9장에서 각각 다룬다. 여기에서는 초판보다 더 넓고 깊은 언어와 예제를 선택하여 이 원리를 실전적으로 이해하도록 하였다.
구문구조, 타입시스템, 의미구조, 함수, 메모리관리의 구현 방식에 관심 있는 독자들을 위해서 3, 6, 8, 10, 11장을 동반해서 공부할 읽을거리로 추가하였다. 이 장들은 관련 핵심 원리를 더 세밀하게 이해하고 싶은 경우 선택적으로 읽어볼 수 있을 것이다. 예를 들어, 2장에서 구문구조의 원리를 공부한 다음, 3장에서 컴파일러의 어휘적, 구문적 단계를 공부하여 이해를 높일 수 있다. 프로그래밍 언어 입문 교과목에서는 이 장들의 일부 또는 전체를 빠트려도 큰 무리가 없다.
이 중에서 3장에는 수학적으로 좀 더 엄밀하게 다루는 절들을 옵션으로 포함시켰다. 이 절들은 이 문단의 앞에 표시된 것과 같이 그래픽 모양으로 옵션이라는 표시를 붙여놓았다. 부록 B에는 이 절들을 읽는 학생들이 바로 참조할 수 있게 이산수학의 주요 주제와 표기법을 요약해놓았다.
끝으로, 특별 주제를 다루는 16, 17, 18장에서는 이벤트 처리, 동시성, 프로그램 정확성의 연구에 대해서 자세히 소개한다. 초판에서는 이 중 두 가지(이벤트 처리와 동시성)만 소개하였고, 정확성에 대한 장을 개정판에 추가하였다.
전체적으로 이 새로운 개정판은 프로그래밍 언어의 원리, 패러다임, 특별주제를 넓고 깊게 포함하고 있다. 결과적으로 이 책은 총 18장이 되었다. 프로그래밍 언어 강좌에서 어떤 부분이 강조되어야 하는지 강사에 따라 견지가 다를 것이므로, 이 책은 다양한 옵션을 제공하고 있다.
1장 소개
1.1 원리
1.2 패러다임
1.3 주요 개념
1.4 역사
1.5 언어의 설계에 대하여
1.6 컴파일러와 가상기계
1.7 복습
연습문제
2장 구문구조
2.1 문법
2.2 확장 BNF
2.3 소규모 언어 Clite의 구문구조
2.4 컴파일러와 실행기
2.5 구문구조와 의미구조 연결
2.6 요약
연습문제
3장 어휘 및 구문 분석
3.1 촘스키 분류
3.2 어휘 분석
3.3 구문 분석
3.4 요약
연습문제
4장 이름
4.1 구문 문제
4.2 변수
4.3 유효범위
4.4 기호표
4.5 주소의 도출
4.6 동적 유효범위
4.7 가시도
4.8 중복
4.9 수명
4.10 요약
연습문제
5장 타입
5.1 타입 오류
5.2 정적 및 동적 타입 결정
5.3 기본 타입
5.4 복합 타입
5.5 재귀적 데이터 타입
5.6 타입으로서의 함수
5.7 타입 동등성
5.8 하위 타입
5.9 다형성과 통칭
5.10 프로그래머가 정의한 타입
5.11 요약
연습문제
6장 타입 시스템
6.1 Clite를 위한 타입 시스템
6.2 자동 타입 변환
6.3 Clite 타입 시스템의 정형화
6.4 요약
연습문제
7장 의미구조
7.1 동기
7.2 계산식의 의미구조
7.3 프로그램 상태
7.4 저장문의 의미구조
7.5 제어 흐름 의미구조
7.6 입출력 의미구조
7.7 예외 처리의 의미구조
7.8 요약
연습문제
8장 의미의 해석
8.1 상태 전이와 부분 함수
8.2 Clite의 의미구조
8.3 동적으로 타입을 결정하는 언어의 의미구조
8.4 의미구조의 정형화
8.5 요약
연습문제
9장 함수
9.1 기본 용어
9.2 함수 호출과 복귀
9.3 매개변수
9.4 매개변수 전달 방법
9.5 활성 레코드
9.6 재귀 함수
9.7 실행시간 스택
9.8 요약
연습문제
10장 함수의 구현
10.1 Clite에서의 함수의 선언과 호출
10.2 Clite 타입 체계의 완성
10.3 함수 호출과 복귀의 의미구조
10.4 타입과 의미구조의 정형적인 표현
10.5 요약
연습문제
11장 메모리 관리
11.1 힙
11.2 동적 배열의 구현
11.3 메모리 수거
11.4 요약
연습문제
12장 명령중심 프로그래밍
12.1 명령중심 언어를 구성하는 것은 무엇인가?
12.2 프로시저 추상화
12.3 계산식과 저장문
12.4 자료 구조를 위한 라이브러리 지원
12.5 명령중심 프로그래밍과 C
12.6 명령중심 프로그래밍과 Ada
12.7 명령중심 프로그래밍과 Perl
12.8 요약
연습문제
13장 객체지향 프로그래밍
13.1 전주곡: 추상 데이터 타입
13.2 객체 모델
13.3 Smalltalk
13.4 Java
13.5 Python
13.6 요약
연습문제
14장 함수형 프로그래밍
14.1 함수와 람다 계산법
14.2 Scheme
14.3 HASKELL
14.4 요약
연습문제
15장 논리형 프로그래밍
15.1 논리와 혼 절
15.2 Prolog 논리형 프로그래밍
15.3 Prolog 예제
15.4 요약
연습문제
16장 이벤트 구동 프로그래밍
16.1 이벤트 구동 제어
16.2 이벤트 처리
16.3 세 가지 사례
16.4 기타 이벤트 구동 응용 프로그램
16.5 복습
연습문제
17장 동시 프로그래밍
17.1 동시성 개념
17.2 동기화 전략
17.3 Java에서의 동기화
17.4 프로세스 간 통신
17.5 다른 언어에서의 동시성
17.6 요약
연습문제
18장 프로그램의 정확성
18.1 공리 의미구조
18.2 정형기법 도구: JML
18.3 객체지향 프로그램의 정확성
18.4 함수형 프로그램의 정확성
18.5 요약
연습문제
부록A Clite정의
A.1 Clite의 어휘 및 실제 구문구조
A.2 Clite의 추상 구문구조
A.3 Clite의 타입체계
A.4 Clite의 의미구조
A.5 Clite에 함수 추가하기
부록B 이산 수학
B.1 집합과 관계
B.2 그래프
B.3 논리
B.4 추론 규칙과 직접 증명
B.5 귀납 증명
찾아보기


































