Programming/CS

[CS] 저급 언어와 고급 언어, 컴파일과 인터프리터

gaing 2024. 9. 23. 16:48

저급 언어와 고급 언어

프로그래밍 언어는 저급 언어 고급 언어로 분류할 수 있다. 저급 언어에는 기계어(Machine Language)와 어셈블리 언어(Assembly Language)가 있으며, 고급 언어에는 C언어, JAVA, Python 등이 있다.

저급 언어와 고급 언어를 나누는 기준은 사람이 쉽게 이해할 수 있는지 없는지의 여부를 기준으로 한다. 사람이 잘 이해할 수 있고 친숙하면 고급 언어, 컴퓨터가 이해하기 쉽고 가까운 언어이면 저급 언어로 분류한다.

저급 언어

기계 중심의 언어로, 컴퓨터가 이해하기 쉬운 이진법으로 이루어진 언어이다. 컴퓨터가 바로 실행할 수 있어 실행 속도가 빠르지만 가독성 및 생산성이 낮다. 저급 언어의 종류에는 기계어 어셈블리어가 있다.

1) 기계어(Machine Language)

컴퓨터가 이해할 수 있는 가장 원초적인 언어
기계어는 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 통틀며, 프로그램을 나타내는 가장 낮은 단계의 개념이다. 기계어는 대부분 어셈블리어를 거쳐 짜인다.

2) 어셈블리어(Assembly Language)

기계어를 영어 문자로 확인할 수 있는 수단
어셈블리어는 기계어를 사람이 이해하기 쉬운 기호와 1:1로 매핑하여 기호화한 프로그램 언어이다. 기계와 바로 통신이 가능해 빠르게 기계를 제어할 수 있다. 최소한의 명령으로 이루어진 2진수 패턴을 사용하는 기계어와 비슷해 명령을 내릴 때 세밀한 조정이 필요하다.

 

고급 언어

사람이 알기 쉽게 써진 문장 구조의 소스 코드를 가진 프로그래밍 언어를 의미한다. 하드웨어에 대한 지식 없이도 프로그래밍을 작성할 수 있어 생산성이 높다. 고급 언어를 실행하기 위해서는 기계어로 번역하는 컴파일 과정이 필수적으로 필요하다.

컴파일 언어와 인터프리터 언어

고급 언어는 인터프리터 언어 컴파일 언어로 나눌 수 있다. 둘 다 고급 언어를 기계가 이해할 수 있는 기계어로 해독해 주는 것은 동일하다.

다만, 컴파일 언어는 '컴파일 타입'을 사용하는 언어이고 인터프리터 언어는 '런타임'을 사용하는 언어라는 점이다.

1) 컴파일 언어

프로그래머가 직접 작성한 소스 코드(원시 코드)를 모두 기계어로 번역한 후 기계를 넣고 기계어 코드를 실행하는 것을 말한다. 빌드 과정을 거치기 때문에 빌드 타임이 없는 인터프리트 언어보다 실행 직전까지의 속도는 다소 소요될 수 있다. 하지만 실행(런타임) 상황에서는 이미 기계어로 모든 소스코드가 번역되어 있기 때문에 빠르게 실행이 가능하다.

2) 인터프리터 언어

인터프리터를 해석하면 '해석기'라는 뜻으로, 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 인터프리터는 번역과 실행이 동시에 이루어지므로 별도의 실행 파일이 존재하지 않으며, 빌드 시간이 없다는 의미와 동일하다.

대표적인 언어로 R, 파이썬, 루비, 펄, PHP, 자바스크립트 등이 있다.


*참고 문헌

인터프리터 언어 vs 컴파일 언어(고급언어)

'Programming > CS' 카테고리의 다른 글

[CS] 컴퓨터 구조의 큰 그림  (2) 2024.09.23
[Windows] 컴퓨터 IP 주소 확인하기 - ipconfig  (0) 2024.09.23