반응형
0. 개요
🤔 Fortran, Algol 그리고 Lisp 같은 언어들이 일찍이 "고급언어" 라고불린 까닭이 무엇일까?
무엇이 high-level과 low-level이 구분하는 것일까?
(고급과 저급이 언어의 value를 나타내는 것은 아니다.)
💡 결론부터 말하자면, 고급 언어와 저급 언어를 가르는 기준은 "추상화 수준"이다.
1. 추상화 (Abstraction)
1-1. 추상화의 목표
추상화는 두 가지 상호 보완적인 목표를 달성한다.
- 머신 독립성
- 사람이 이해하기 쉽고 프로그래밍하기 쉽도록 한다.
쉽게 말해서, 복잡한 시스템이나 프로세스를 단순화하고 요약하는 방법이다.
1-2. A Name
추상화는 결국 "이름"을 부여하는 과정을 의미한다.
이 Name이라는 것은 다른 무언가를 나타내는데 사용된다.
이 "이름"은 변수, 상수, 연산, 타입과 같은 식별자(identifiers)로 표현된다.
-> 추상화는 개념적으로 복잡한 것을 단순화하여 이해하기 쉽게 만드는 과정을 나타낸다.
-> 두 번째 의미는 프로그래머가 "a name"과 "복잡한 프로그램 조각"을 연결하는 과정을 나타낸다.
1-3. 추상화의 종류
- 제어 추상화 : 이를테면, 함수나 서브루틴을 생각해보자.
서브루틴을 호출하여, 내부 작업의 복잡성을 숨기고 간단한 인터페이스를 사용할 수 있다.
이는 프로그램의 구조를 개념적으로 단순하 했다고 할 수 있다. - 데이터 추상화 : 가장 대표적인 것인 Class이다.
데이터의 내부 표현을 숨기고, 데이터와 관련된 작업을 단순한 인터페이스로 옮긴다.
#. 결론
내부 구조를 감추고, 개념적인 복잡성을 줄이기 위함
반응형