컴파일러와 인터프리터는 사람이 작성한 코드를 기계어로 번역하는 번역 프로그램이다.
둘의 가장 큰 차이는 코드의 번역 방식에 있다.
컴파일러는 전체 코드를 한 번에 번역하는 반면, 인터프리터는 코드를 한 줄씩 순차적으로 번역한다.
컴파일러는 *원시 프로그램 전체를 분석하여 오류를 검사한 뒤, 전체 코드를 목적 코드(기계어)로 한 번에 번역합니다.
원시 프로그램 : 사람이 작성한 고급 언어로 이루어진 코드를 말합니다
이렇게 번역된 코드는 실행 파일 형태로 저장되어, 실행 시점에서는 더 이상의 번역 과정 없이 바로 실행됩니다. C, C++, Java 같은 정적 언어들이 이 방식을 사용합니다.
인터프리터는 원시 프로그램 코드를 한 줄씩 읽어가며 바로바로 번역하고 실행합니다.
이 방식은 코드의 수정이나 테스트가 빈번히 이루어지는 개발 과정에서 유리하며, 인터프리터 방식은 프로그램의 수정이나 디버깅을 실시간으로 할 수 있게 해 주지만, 전체 코드를 한 번에 번역하는 컴파일러 방식에 비해 실행 속도가 느릴 수 있습니다.
Python, Ruby, JavaScript 같은 동적 언어들에서 주로 사용됩니다.