1. |
|
프로그래밍언어론 소개 |
프로그래밍언어론을 구체적으로 학습하기에 필요한 기초적이고도 전반적인 내용을 학습한다. |
|
|
|
프로그래밍 언어 평가기준 |
프로그래밍 언어를 평가할 수 있는 기준과 각 기준에 영향을 미치는 요인들에 대해서 학습한다. |
|
2. |
|
구문구조 |
문자열 집합으로서의 언어를 이해하고 언어의 구문구조를 명세하는 법을 공부한다. |
|
|
|
구문구조 |
문자열 집합으로서의 언어를 이해하고 언어의 구문구조를 명세하는 법을 공부한다. 언어 명세 방법에 따른 언어의 분류를 이해한다. |
|
3. |
|
변수의 속성 |
프로그래밍 언어에서 사용되는 변수의 기본적인 속성들에 대하여 정확하게 알아본다. |
|
|
|
변수의 바인딩 |
바인딩에 대한 기본적인 사항을 먼저 학습하고, 변수의 타입을 지정하는 타입바인딩에 대해 정확하게 알아본다. |
|
4. |
|
변수의 타입검사 |
변수의 타입검사를 바인딩과 관련지어 학습하고, 연산을 실행하기 위한 피연산자의 타입호환성에 대해서 학습한다. |
|
|
|
변수의 영역 |
프로그램에서 선언된 변수를 사용할 수 있는 영역을 판단하는 방법과 프로그램의 한 지점에서 사용 가능한 변수를 판단하는 방법에 대해서 학습한다. |
|
5. |
|
단순 데이터 타입과 배열_단순 데이터 타입 |
C를 비롯한 일반적인 프로그래밍 언어에서 자주 사용되는 데이터 타입에 대해 목적과 개념에 대해 고찰하고, 그 중 가장 단순한 기본 데이터 타입에 대해 종류별 표현 방법 및 포맷 등을 알아본다. |
|
|
|
단순 데이터 타입과 배열_배열 |
동일한 데이터 타입의 테이터를 모아놓고 첨자를 사용해서 접근하는 형태의 유도 데이터 타입인 배열에 대해 전반적으로 살펴본다. |
|
6. |
|
구조적 데이터타입과 포인터_구조적 데이터 타입 |
대표적이니 유도 데이터타입인 레코드타입이나 공용체 타입과 같은 구조적 데이터타입의 개념과 공통점, 차이점 등을 알아본다. |
|
|
|
구조적 데이터타입과 포인터_포인터 |
포인터 개념과 문제점에 대해 학습하고, C의 포인터와 참조 및 기타 다른 언어의 유사 개념에 대해서도 알아본다. |
|
8. |
|
부프로그램 |
부프로그램을 구체적으로 학습하기에 필요한 기초적이고도 전반적인 내용을 학습한다. |
|
|
|
매개 변수 전달 방법 |
먼저, 매개변수 전달 방법의 여러 가지 의미적 모델과 그 구현 모델에 대해서 알아본다. 다음에 여러 주요 언어의 설계 선택과 그 구현에 사용된 실제 방법들을 알아본다. 마지막으로 언어 구현자 관점에서 설계 고려사항을 알아본다. |
|
9. |
|
다형 부프로그램 |
다형 부프로그램의 유형인 중복 부프로그램과 포괄형 부프로그램에 대해서 학습하고, 각 유형별로 언어의 지원 사례에 대해서 살펴본다. |
|
|
|
부프로그램 기타 |
부프로그램 매개변수, 사용자 정의 중복 연산자, 함수 설계 고려사항, 코루틴에 대해서 학습한다. |
|
10. |
|
부프로그램의 구현(1) |
부프로그램의 호출과 복귀의 의미, 정적 지역 변수를 갖는 중첩되지 않은 부프로그램의 구현, 스택 동적 변수를 갖는 중첩되지 않은 부프로그램의 구현 방법에 대해서 학습한다. |
|
|
|
부프로그램의 구현(2) |
정적_영역 언어에서, 중첩된 부프로그램의 비지역변수 접근을 구현하는 정적 체인 방법을 학습한다. 다음에, 블록에 선언된 변수 접근 방법을 학습한다. 마지막으로, 동적-영역 언어에서, 지역 변수와 비지역 변수 참조를 구현하는 두 가지 방법, 심층 접근과 피상 접근을 학습한다. |
|
11. |
|
추상데이터 타입_데이터 추상화 |
프로그램을 용이하게 해주는 추상화 기법 중, 데이터 추상화를 위한 추상 데이터 타입의 개념에 대해 알아본다. |
|
|
|
추상 데이터 타입_추상 데이터 타입의 예 |
다양한 프로그래밍 언어에서 추상 데이터 타입이 제공되는 방식에 대해 이해한다. |
|
|
|
추상 데이터 타입_기타 여러 가지 추상화 |
인자를 가지는 추상데이터 타입과 명칭 캡슐화 등 다양한 프로그램에서 나타나고 있는 여러 가지 추상화 기법에 대해 살펴본다. |
|
12. |
|
객체 지향 프로그래밍_객체지향 프로그래밍 개념 |
객체 지향 프로그래밍 개념에 대해 살펴보고 추상 데이터 타입과의 공통점, 차이점을 알아본다. 특히 가장 중요한 차이점인 상속에 대해 알아본다. |
|
|
|
객체 지향 프로그래밍_객체지향 개념의 다양한 성질 |
객체 지향 프로그래밍 개념의 다형성에 대해 알아보고 그 밖에 객체지향 개념에서 다루어지는 각종 성질들에 대해 논의한다. |
|
|
|
객체 지향 프로그래밍_객체지향 프로그래밍 언어의 예 |
여러 가지 객체지향 프로그래밍 언어의 예에 대한 이해를 통해 이전에 학습한 객체지향 개념을 다지고 활용성을 높인다. |
|
13. |
|
함수언어_람다 계산법, Lisp |
함수 프로그래밍 패러다임에 대한 기초적인 이해와 프로그래밍 기법을 습득하기 위해 람다 계산법과 LISP에 대해 공부한다. |
|
|
|
함수언어_ML, Haskell |
함수 프로그래밍 패러다임에 대한 기초적인 이해와 프로그래밍 기법을 습득하기 위해 ML과 Haskell에 대해 공부한다. |
|
14. |
|
논리언어_논리시스템, Prolog |
Prolog 프로그래밍 언어의 기반인 논리 시스템과 Prolog의 기본적인 구문을 공부한다. |
|
|
|
논리언어_선언적 프로그래밍, Prolog 수행방법 |
Prolog 프로그램의 특징인 선언적 프로그래밍과 Prolog 프로그램의 수행 방법에 대해 공부한다. |
|