본문 바로가기

파이썬 기초

[파이썬 코딩] 컴파일러와 인터프리터의 차이점

 

인터프리터 방식과 컴파일러 방식의 이해

우리가 사용하는 컴퓨터는 태생 때부터 기계어만을 이해할 수 있게 설계되어 있습니다. 따라서 어셈블리어나 고급언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 번역되어야 컴퓨터에서 실행이 가능합니다.

 

이처럼 고급언어로 작성된 원시 프로그램(Source Program)을 기계어로 번역하는 프로그램을 번역하는 방식에 따라 컴파일러(Compiler) 방식인터프리터(Interpreter) 방식으로 구분됩니다.

 

 

컴파일러(Compiler) 방식은 고급 언어로 작성된 프로그램 전체를 한 번에 기계어로 번역한 후 링킹 작업을 거쳐 컴퓨터에서 실행 가능한 실행 프로그램을 만듭니다. 반면 인터프리터(Interpreter) 방식은 고급언어로 작성된 프로그램을 한 줄씩 기계어로 번역한 후 즉시 실행하는 방식입니다.

 

 

컴파일러 방식은 프로그램 전체를 번역을 해야 하기 때문에 번역 과정이 복작하고 시간 소요가 많이 되지만 한 번 번역한 후에는 다시 번역을 할 필요가 없기 때문에 실행 속도가 빠릅니다.

 

인터프리터 방식은 고급언어로 작성된 프로그램을 한 문장씩 읽고. 번역 후 실행하는 방식으로 프로그래머가 수정한 사항이 바로 반영되고 오류가 있으면 실행 중 중단하므로 프로그래머가 빠르게 오류를 파악할 수 있을 뿐만 아니라 배우기 쉽다는 장점이 있습니다. 그리고 인터프리터가 설치된 곳이면 어느 곳에서도 실행이 가능하므로 프로그램의 이식성이 높습니다.

 

하지만 컴파일 방식과는 달이 실행 파일을 만들지 않으므로 매번 실행 시마다 번역이 일어나므로 실행 속도가 느립니다. 그리고 프로그램이 실행할 대 반드시 인터프리터가 있어야 한다는 것이 단점입니다.

 

♣ 인터프리터 방식과 컴파일러 방식 비교

구분 인터프리터 방식 컴파일 방식
번역 한줄 씩 번역 후 실행 전체를 번역 한번에 실행
장점

배우기 쉽다.

효율적인 실행 코드가 생성된다.
단점
살행 시에는 인터프리터가 항상 필요하다.


기계어에 종속적인 실행코드가 생성되므로 실행 기계가 달라지면 새로이 컴파일해야 한다.
파이썬, 비주얼 베이직, LISP 등 C, C++, JAVA 등