컴파일 언어 vs 인터프리터 언어
컴파일 언어란?
소스 코드를 기계어로 컴파일해서 실행 파일을 만들어 실행하는 방식이다.
컴파일 언어는 원시 코드(프로그래머가 작성한 소스 코드)를 한 번에 기계어로 변환하여 실행 파일을 만든다.
컴파일 언어는 컴파일 단계와 실행 단계가 각각 분리되어 있으며, 컴파일은 단 한번만 수행한다.런타임 상황에서는 이미 기계어로 모든 소스 코드가 변환되어 있기 때문에 인터프리터에 비해 빠르게 실행할 수 있다.
C, C++, java와 같은 언어들이 대표적인 컴파일 언어이다.
- 컴파일러 : 고급 언어로 작성된 소스코드를 저급 언어로 번역하는 프로그램이다.고급언어는 사람이 이해하기 쉽도록 작성된 프로그래밍 언어이며 저급언어는 컴퓨터 내부에서 바로 처리가 가능한 언어로 기계어와 어셈블리어가 이에 속한다.
기계어로 컴파일된 실행파일을 실행하기 때문에 속도가 빠르다. 한 번에 모든 코드를 컴파일하기 때문에 실행 전에 오류를 파악할 수 있다. 코드를 수정하면 다시 컴파일 과정을 거쳐야 한다.
인터프리터 언어란?
코드를 한 줄씩 읽어 내려가며 실행하는 방식이다.
인터프리터 언어는 소스코드를 기계어로 변환하는 과정 없이 한 줄씩 해석하여 바로 명령어를 실행하는 언어를 말한다.
인터프리터 언어는 소스 코드를 한번에 기계어로 변환하는 컴파일러와 달리 컴파일 하지 않고 소스 코드를 한 줄씩 읽어서 실행한다.
컴파일하는 과정이 없기 때문에 컴파일 시간은 없지만, 인터프리터 언어는 실행 시마다 인터프리트 과정이 수행되어야 하기 때문에 비교적 실행 속도가 느리다.
R, Python, Ruby와 같은 언어들이 대표적인 인터프리터 언어이다.Runtime에서 인터프리터가 한 줄씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느리다.실행 속도는 느릴 수 있지만 코드 변경 시 빌드없이 바로 실행이 가능하다는 장점이 있다.
줄 단위로 번역과 실행을 진행하기 때문에 속도는 컴파일 언어에 비해 느리다.컴파일 언어처럼 따로 기계어로 변환하지 않기 때문에 빌드 시간이 없다.
프로그램을 수정하고 다시 컴파일 해야 하는 과정이 생략된다.오류가 있는 코드를 만나기 전까지 실행되며 실행 과정에서 오류를 파악할 수 있다.