책소개
‘프로그래밍 언어론’ 교과목은 프로그래밍 언어의 정의, 기능, 구성 요소 등을 다루어 프로그래밍 언어 자체에 대한 감각을 키우는 데 목적을 두고 있다. 이를 통해 새로운 언어는 쉽게 배우고, 이미 사용 중인 언어는 더 잘 이해할 수 있으며, 나아가 궁극적으로 현명한 언어 설계자가 될 수 있다. 어떤 프로그래밍 언어라도 배운 적이 있다면 이 교과목의 내용을 따라가 기가 훨씬 수월할 것이다. 따라서 선수과목으로 Python이나 C를 권장한다. 그러나 이 교재는 어떤 선수과목을 필수로 가정하고 있지는 않다. 따라서 프로그래밍 언어에 익숙하지 않은 학생들도 이 교재에서 다루는 다양한 예제를 직접 실행해 보면서 감각을 키울 수 있기를 바란다.
일반 대중이 많이 사용하는 단어가 결국 표준어가 된다. 마찬가지로 프로그래밍 언어도 프로그래머가 자주 사용하고 좋아하는 기능을 포함하는 형태로 발전한다. 그러므로 이 교재를 읽으며 “나라면?”이라는 생각을 많이 했으면 좋겠다. 그래서 이 교재의 독자들이 비판적 언어 설계자로, 현명한 언어 설계자로 거듭나게 되는 것이 저자들의 소박한 바람이다.
저자소개
서울대학교 자연과학대학 수학과(이학사), 서울대학교 대학원 컴퓨터공학과(공학석사), 서울대학교 대학원 전기컴퓨터공학부(공학박사).
현재 한국방송통신대학교 자연과학대학 컴퓨터과학과 교수
목차
제1장 프로그래밍 언어 소개
1.1 프로그래밍 언어란 무엇인가
1.2 프로그래밍 언어의 기능
1.3 프로그래밍 언어의 구성 요소
1.4 프로그래밍 언어의 학습 방법
제2장 프로그래밍 언어의 발전 및 동작 원리
2.1 프로그래밍 언어의 발전
2.2 프로그램 동작 원리
2.3 프로그래밍 언어의 평가 기준
제3장 프로그래밍 언어 패러다임
3.1 프로그래밍 패러다임
3.2 프로그래밍 언어 패러다임
3.3 여러 패러다임의 프로그램 예
3.4 프로그래밍 언어와 프로그래밍 패러다임
제4장 구문론과 의미론
4.1 구문론과 의미론
4.2 구문의 표현
4.3 의미의 표현
제5장 구문 분석
5.1 어휘 분석
5.2 파스 트리
5.3 모호성
제6장 프로그래밍 언어의 구현
6.1 프로그래밍 언어 정의와 구현
6.2 프로그래밍 언어 구현 방법
6.3 언어 구현 실제
제7장 변수와 바인딩
7.1 변수의 개요
7.2 바인딩
7.3 변수의 바인딩
제8장 변수의 영역
8.1 영역의 개요
8.2 영역 규칙
8.3 이름 공간
제9장 타 입
9.1 타입의 개요
9.2 타입의 분류
9.3 단순타입
제10장 복합타입
10.1 배 열
10.2 문자열형
10.3 연관배열과 해싱
10.4 구조체와 공용체
10.5 포인터형과 참조형
제11장 수 식
11.1 수식의 개요
11.2 수식과 문장의 차이
11.3 수식과 연산자
제12장 문 장
12.1 선언문과 실행문
12.2 대입문
12.3 제어문
제13장 서브프로그램 개요
13.1 서브프로그램 개념
13.2 매개변수와 인수 전달
13.3 서브프로그램 관련 주제
제14장 서브프로그램 구현
14.1 서브프로그램 구현 개요
14.2 정적 체인과 동적 체인
14.3 기타 서브프로그램 구현 방법
제15장 객체지향과 다형성
15.1 추상 자료형
15.2 객체와 클래스
15.3 다형성