- 추상화의 분류
- ㆍ 저자명
- 김성기,Kim. Sung-Ki
- ㆍ 간행물명
- 정보처리학회논문지. The KIPS transactions. Part A. Part A
- ㆍ 권/호정보
- 2004년|1호|pp.89-96 (8 pages)
- ㆍ 발행정보
- 한국정보처리학회
- ㆍ 파일정보
- 정기간행물| PDF텍스트
- ㆍ 주제분야
- 기타
프로그래밍 언어에서의 추상화는 변수, 함수, 복합 데이터 등에서부터 추상 데이터 타입, 클래스, 다형성 등에 이르기까지 광범위하게 적용되는 중요한 개념이다. 그러나 추상화 개념의 명확성과 통일성 부족으로 인하여 추상화는 다소 애매 모호한 특성을 갖는 용어로 인식되어지고 있으며, 관점에 따라 다르게 설명되는 혼란스러움을 경험하고 있다. 본 논문에서는 여러 프로그래밍 언어에 나타난 추상화에 대한 체계적인 분석을 실시하여 추상화의 분류를 제안한다. 추상화는 추상물의 생성 방법에 따라 사상 추상화, 묶음 추상화, 통합 추상화, 확장 추상화 등 4가지 범주로 분류된다. 또한 함수, 추상 데이터 타입, 객체, 캡슐화, 클래스 등 추상화를 기반으로 하여 형성된 여러 개념들이 추상화의 관점에서 고찰된다. 이러한 체계적인 추상화의 분석과 분류를 통하여 지금까지 개별적이며 서로 다른 형태의 추상화로 취급된 여러 추상화 양상이 하나의 통일된 개념으로 설명될 수 있을 것이며, 추상화의 의미, 필요성, 중요성에 대하여 보다 깊은 이해가 가능할 것이다.
Abstraction is an important concept applied widely to variables, functions, complex data, abstract data types, classes and polymorphism in programming languages. However, the concept of abstraction has been considered as ambiguous and explained differently because it is not defined clearly and uniformly. In this paper, we analyse many aspects of abstraction in programming languages, and propose the taxonomy of abstraction. We classify abstraction according to the mechanism of formation into 4 categories such as napping abstraction, bundling abstraction. integrating abstraction and extending abstraction. We also consider many concepts related closely to abstraction such as functions, abstract data types, objects, encapsulation and classes in the view of abstraction. These analysis and consideration will make it possible to explain uniformly various aspects of abstraction which have been treated individually and differently, and to understand the meanings, necessity and importance of abstraction more intensively.