프로그래밍 언어는 컴퓨터에 우리의 의사를 전달하는 도구이다. 프로그래밍 언어를 이용하여 프로그램 형태로 작성하기만 하면 컴퓨터는 이를 충실히 수행해 낸다. 컴퓨터가 수행할 명령어를 순서대로 나열한 것을 프로그램이라고 부른다. 나라별로 여러 언어가 있는 것처럼 프로그래밍 언어도 C, C++, Java, Python 등 다양하게 존재한다. 한국어, 영어 등 언어마다 사용하는 단어도 다르고 문법도 다르지만 동일한 의사를 전달할 수 있는 것처럼, 각 프로그래밍 언어가 사용법은 다를지라도 프로그램을 통해 동일한 의사를 전달할 수 있다.
이 교과목은 프로그래밍 언어의 정의, 기능, 구성 요소 등을 다루어 프로그래밍 언어 자체에 대한 감각을 키우는 데 목적을 두고 있다. 이를 통해 새로운 언어는 쉽게 배우고, 이미 사용 중인 언어는 더 잘 이해할 수 있으며, 나아가 궁극적으로 현명한 언어 설계자가 될 수 있다.
선수과목으로 C나 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 언어 구현 실제
13.1 서브프로그램 개념 / 13.2 매개변수와 인수 전달 / 13.3 서브프로그램 관련 주제
제14장 서브프로그램 구현
14.1 서브프로그램 구현 개요 / 14.2 정적 체인과 동적 체인 / 14.3 기타 서브프로그램 구현 방법
제15장 객체지향과 다형성
15.1 추상 자료형 / 15.2 객체와 클래스 / 15.3 다형성
우균
KAIST를 졸업하고 동 대학에서 전산학 석·박사 학위를 취득하였다. 2000년부터 2004년까지 동아대학교 교수를 역임한 후 2004년부터 부산대학교 정보·컴퓨터공학부에서 컴파일러와 프로그래밍 관련 교과를 가르치고 있다. •e-mail: woogyun@pusan.ac.kr
김진욱
서울대학교를 졸업하고 동 대학교에서 컴퓨터공학 석·박사 학위를 취득하였다. 2013년 이후 한국방송통신대학교 컴퓨터과학과에서 「프로그래밍 언어론」, 「운영체제」, 「컴퓨터 보안」 등의 교과목을 가르치고 있다. •e-mail: gnugi@knou.ac.kr