1. 추상화(Abstraction)란?

추상화는 실제적이고 구체적인 개념들을 요약하여 보다 더 높은 개념을 유도하는 과정이다.

(Abstraction is a process by which higher concepts are derived from the usage and classification of real or concrete concepts)

추상화는 무엇을 요약하여 추상화하느냐에 따라 데이터 추상화(data abstraction)명령어(제어) 추상화(control abstraction)가 있다.

 

2. 데이터 추상화(data abstraction)

* 변수: data값을 저장하는 memory위치를 나타내는 것을 추상화

* 데이터 타입(data type): 메모리에 저장될 값들의 종류에 대한 이름을 추상화

* 배열: 같은 타입의 연속된 변수들의 모음을 추상화

* 레코드(구조체): 다른 타입의 연속된 변수들의 모음을 추상화

 

3. 제어 추상화(control abstraction)

제어: 프로그램 내의 명령어 실행 순서.

제어 추상화는 여러개의 기계어 명령들을 간단히 요약한 것이다.

아래에서 몇 개의 예시를 살펴보자

 

* 배정문

LOAD R[n], X → ADD R[n], 1 → STORE R[n], X

[추상화]  X = X + 1

 

* while문

if (! condition) GOTO L2

statements

GOTO L1

[추상화]

while (condition) {

statements

 }

 

4. 통합 추상화(unit abstraction)

데이터(자료구조)와 제어(관련 프로시저) 추상화를 통합해서 추상화한 것이 추상 데이터 타입(abstract data type)이다.

이것의 예로는 스택(Stack) 데이터 타입을 생각해볼 수 있는데,

스택 데이터 타입은 스택을 표현하기 위한 데이터(자료구조), push, pop등과 같은 연산들로 구성된다.

+ Recent posts