문제 해결에 적합한 프로그래밍 언어를 선택할 수 있는 능력, 새로운 언어를 쉽게 배울 수 있는 능력 등을 갖추기 위해 프로그래밍 언어의 기본적인 개념 및 이해에 대한 학습은 필수적이다. 지금까지 프로그래밍 언어에 관한 다수의 책이 출판되었지만 실용적인 프로그래밍 언어와 그 계산 모델(가상 계산기)의 밀접한 연관성 및 중요성을 언급하여 쓴 책은 많지 않다고 본다.
이 책의 특징은 이와 같은 중간 코드의 장점을 이용해서 현재 보급되고 있는 프로그래밍 언어인 C와 Java에 관해 상세하게 설명하는 점이다. 즉, 명령형 언어와 객체 지향 언어의 조작적 의미론에 중점을 둔 내용으로 되어 있다. 물론 다른 프로그래밍 패러다임인 함수형 언어 및 논리형 언어, 구문론 및 다른 프로그램 의미론도 예를 들어 다루지만 그 설명은 가장 중요한 기본 사항에 맞춰 수학적 기초에 관해서만 다룬다.
제1장 프로그래밍 언어 소개
1.1 프로그래밍 언어란
1.2 프로그래밍 언어의 개념을 학습하는 이유
1.3 언어의 변천
1.4 언어의 설계 원칙
1.5 프로그램 처리 기법
1.6 컴파일러와 언어의 번역 단계
∙연습문제
제2장 프로그래밍 언어의 특징과 분류
2.1 프로그래밍 패러다임
2.2 명령형 언어와 논리 모델
2.3 함수형 언어
2.4 논리형 언어
2.5 객체 지향 언어
∙연습문제
제3장 형식 언어
3.1 형식 언어의 기본 개념
3.2 문 법
3.3 문법의 계층적 분류
∙연습문제
제4장 프로그래밍 언어의 구문
4.1 BNF
4.2 EBNF
4.3 구문 도표
4.4 파스 트리
4.5 모호성
4.6 수식의 문법 규칙
4.7 구문과 프로그램 신뢰도
∙연습문제
제5장 변수와 영역
5.1 변 수
5.2 상수 및 변수 초기화
5.3 바인딩과 바인딩 시간
5.4 선언과 블록
5.5 영 역
5.6 변수의 영역과 수명
5.7 이명과 부작용
5.8 데이터형 호환성
∙연습문제
제6장 데이터형
6.1 기본 데이터형
6.2 열거형
6.3 배열형
6.4 문자열형
6.5 레코형
6.6 포인터형
6.7 공용체형
6.8 형 변환
∙연습문제
제7장 수식과 배정문
7.1 수 식
7.2 피연산자 평가 순서
7.3 중복 연산자
7.4 관계식과 논리식
7.5 단락 회로 평가
7.6 배정문
7.7 혼합형 배정문
∙연습문제
제8장 제어문
8.1 구조화 제어문
8.2 조건문
8.3 반복문
8.4 점프문
∙연습문제
제9장 함수와 프로시저
9.1 함 수
9.2 프로시저
9.3 인수 전달 방법
9.4 함수의 재귀 호출
9.5 기억 장소 할당
9.6 실행 시간 스택
9.7 중복 프로그램
9.8 코루틴과 서브루틴
∙연습문제
제10장 객체 지향 프로그래밍 언어
10.1 객체
10.2 추상 데이터형
10.3 객체 지향 언어의 본질
10.4 객체 지향 언어의 특징
10.5 객체 지향의 사례
∙연습문제
제11장 C 언어
11.1 Small C 언어
11.2 가상 계산기
11.3 Small C 프로그램의 의미
11.4 C 언어의 형 선언과 형 검사
∙연습문제
제12장 Java 언어
12.1 Java 처리계의 구성과 메모리 구성
12.2 클래스 로더
12.3 Java의 구문 규칙
12.4 비객체 지향의 바이트 코드로의 변환
12.5 객체 지향 기능의 바이트 코드로의 변환
∙연습문제
제13장 예외 처리
13.1 예외 처리란
13.2 C++에서의 예외 처리
13.3 C#에서의 예외 처리
13.4 Java에서의 예외 처리
∙연습문제
제14장 프로그래밍 언어의 의미론
14.1 형식적 의미 기술법
14.2 RAM의 기계어 명령의 의미
14.3 간단한 프로그램의 형식적 의미 기술
14.4 표시적 의미론과 공리적 의미론
∙연습문제