나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-04-18 04:18:22

추상화 수준


이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.


1. 개요2. 상세3. 저수준4. 고수준

1. 개요

abstraction level, level

주어진 프로그래밍 언어가 기층적 기계어의 제약사항으로부터 얼마나 고수준(high-level)으로 추상화되었는지 단계적으로 나타내는 스펙트럼.

구분적(distinctive) 분류가 아니라 단계적(gradual) 분류에 해당하며, 기계어에 가까울수록 저수준(low-level) 언어, 추상화 수준이 높을수록 고수준(high-level) 언어라 부른다.

2. 상세

기본적으로 하드웨어, 컴퓨터 구조는 프로그래밍 언어에 제약사항(precision, allocation 등)을 가하지만, 반대로 인간인 프로그래머는 프로그래밍 언어에 다양한 기능(reusability, inference, polymorphism 등)을 요구한다. 결국 프로그래밍 언어는 이 둘 중 누구를 더 만족시키고 타협하느냐에 따라 양극단 사이의 스펙트럼을 형성하게 되고, 맨 위에는 인간(개발자), 맨 아래에는 기계어가 놓이게 된다.

시스템 프로그래밍 언어 vs 응용(application) 프로그래밍 언어 구분과는 비슷하지만 다르다. Rust와 같이 고수준의 무비용(zero-cost) 추상화를 지원하는 동시에 시스템 프로그래밍 타켓이 가능할 정도의 정밀도를 지원하는 반례들이 있기 때문. 시스템/응용 구분은 사실 실무에서 목적에 따라 구분한 것일 뿐, PLT적 구분이라 보긴 애매하다.

3. 저수준

4. 고수준