프로그래밍 언어론 3강. 추상(Abstraction)

[프로그래밍 언어론]

2019. 10. 26. 13:55

 

[개론]

: 일찍이 Fortan, Algol, Lisp와 같은 언어들이 “고급 언어”로 불린 이유가 그들의 문법과 시맨틱이 보다 추상적이였기 때문이다.

 

 

 

[추상의 주요 목표]

: 사람이 이해하고, 프로그래밍하기 쉽게

- 기계 독립적 : 기계의 종류에 구애 받지 않고 동작하는 프로그램 코드 작성 가능

 

 

 

[A name]

: 다른 것을 표현하기 위해 사용되는 기억 문자열(mnemonic character string)

- Name의 종류 :  식별자(함수명등)   /  상징(symbols) : ex)’a=b’ ‘a+b’등   /  변수, 상수, 연산자, 타입 등

=> 잠재적으로 복잡한 프로그램을 Name과 연관시키는 프로그래머의 작업 = 추상화

(함수의 동작 방법보다 함수의 목적에 대해 생각할수 있게끔 해주고, 프로그래머가 복잡한 생각대신, 관리가능한 부분에 집중할 수 있게 해준다.)

 

 

 

[추상화의 구분]

: 언어 기능이 특정 컴퓨터 아키텍처의 세부 정보와 분리되는 정도를 참조한다.

  • Control 추상화(함수,subroutine, 프로시저)  : 임의의 복잡한 코드를 간단한 인터페이스 뒤에 숨긴다.
  • Data 추상화(클래스) : 데이터들을 감춤 ( 데이터 + 표현식을 추상화)