티스토리 뷰

 

안녕하세요 탐구소년입니다.

프로그래밍 언어를 공부해 본 경험이 있는 분이라면 누구나 컴파일러 또는 인터프리터라는 단어를 접해 본 일이 있으실 겁니다. 컴파일러와 인터프리터는 둘 다 프로그래밍 언어를 해석하고 실행시키기 위해 필요한 소프트웨어입니다. 예를 들어 대표적인 프로그래밍 언어인 C언어를 실행시키기 위해서는 컴파일러를 사용하고, 파이썬을 실행시키기 위해서는 인터프리터를 사용합니다. 이렇듯 두 소프트웨어는 비슷한 목적을 가지고 있는 소프트웨어인데요. 그러나 둘 사이에는 분명한 차이점 또한 존재하기 때문에, 그에 대해 잘 알아두면 추후 프로그래밍을 공부하는 데 분명 도움이 될 것입니다.

 

 

컴파일러

 

사전적으로 컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말합니다. 원래의 문서를 소스 코드 또는 원시 코드라고 부르고, 출력된 문서를 목적 코드라고 부릅니다. 원시 코드에서 목적 코드로 변환하는 과저을 컴파일이라고 하는 것입니다. 예를 들어 사용자가 C언어로 어떤 프로그램을 작성했을 때, 이를 실행 가능한 형태의 바이너리 코드(exe파일)로 변환해주는 작업이 바로 컴파일에 해당하는 작업입니다. 이 경우에는 C언어 코드가 원시 코드이고, 바이너리 코드가 목적 코드가 됩니다. 

컴파일 방식을 사용하는 프로그래밍 언어로는 대표적으로 C 계열의 언어들이 있습니다. C, C++ 등이 바로 그것입니다. 

 

 

인터프리터 

 

인터프리터는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말합니다. 원시 코드를 목적 코드로 컴파일하는 컴파일러와 대비되는 성격을 가지고 있습니다. 인터프리터는 원시코드 명령어들을 한 번에 한 줄씩 읽어들여서 실행하는 방식을 따릅니다.

인터프리터 방식을 사용하는 프로그래밍 언어로는 대표적으로 파이썬, 자바스크립트, SQL, 루비 등이 있습니다. 

 

 

둘의 비교

 

컴파일된 프로그램들은 일반적으로 인터프리터 방식으로 실행시키는 것보다 더 빠르게 실행됩니다. 컴파일을 마친 목적 코드는 기계가 빠르게 동작시킬 수 있는 코드이기 때문입니다. 또한 인터프리터는 실행 시킬 때마다 코드를 읽어야 하는 반면 컴파일러는 한 번의 컴파일로 실행 가능한 형태의 목적 코드를 생성합니다 . 다만 컴파일 방식은 원시 코드의 용량이 클 경우에는 컴파일 과정에서 많은 시간이 걸릴 수 있습니다. 

 

 

 

댓글
공지사항