본문 바로가기
컴퓨터 관련/Linux || Unix

컴파일러(compiler)와 인터프리터(interpreter)의 차이점 / 컴파일러란? /인터프리터란?

by _BlankSpace 2017. 4. 25.

인터프리터는 프로그래밍 언어의 소스코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다.


원시 코드를 기계어로 번역하는 컴파일러와는 반대되는 개념이라고 생각하면 된다.


다음의 과정 중에 적어도 한 가지 기능은 가져야 한다.


1. 소스 코드를 직접 실행한다.

2. 소스 코드를 효율적인 다른 중간 코드로 변환하고, 그것을 바로 실행한다.

3. 인터프리터 시스템의 일부인 컴파일러가 만든, 미리 컴파일된 저장 코드의 실행을 호출한다.


인터프리터는 고급 언어로 작성된 (다시말하면 사람이 읽거나 이해할 수 있는) 원시코드 명령어들을 한번에 한 줄씩 읽여들여서 실행하는 프로그램이다.


인터프리터는 고급 명령어들을 중간 형태로 변환하고 그것을 실행함으로써, 컴파일러보다 실행 속도가 빠르다.


그러므로 즉시 실행 결과를 보고 싶은 사용자는 인터프리터를 사용하는 경우가 있다.




컴파일러는 특정 프로그래밍 언어로 이루어진 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다.


원래의 문서는 소스 코드 또는 원시코드라고 부르고, 출력된 문서를 목적 코드라고 한다.


목적 코드는 주로 다른 프로그램이나 하드웨어가 처리하는 데 용이한 형태로 출력되지만 사람이 읽을 수 있는 문서 파일이나


그림 파일 등으로 옮기는 경우도 있다고 한다.


따라서 원시 코드에서 목적 코드로 옮기는 과정을 컴파일이라고 한다.


그렇다면 소스 코드를 왜 컴파일할까?


그 이유는 대부분 사람에게 이해하기 쉬운 형태의 고수준 언어로부터 실행가능한 기계어 프로그램을 만들기 위해서이다.



위의 인터프리터컴파일러의 설명을 바탕으로 차이점을 알아보자.



 비교 단위

컴파일러

인터프리터

 번역 단위

프로그램 단위 번역

명령 줄 단위로 번역 

 수행 과정

함께 번역, 함께 수행 

줄 단위로 번역 및 수행 

 목적 프로그램

번역 후, 저장을 위해 필요함. 

바로 수행함으로써 불피요함. 

 효율성

한번 번역되면 계속 사용 가능하므로

효율성이 좋음. 

실행할 때마다 번역해야하므로

효율성이 좋지 않음. 

 기억 장소

많이 필요함. 

적게 필요함. 


댓글