작성한 코드를 모두 기계어로 변환한 후에 기계어 코드로 실행하는 방식의 언어
개발자가 작성한 코드를 기계어로 변환하는 과정 없이 한 줄 한 줄 해석하여 실행하는 방식의 언어
컴파일 언어는 '컴파일링' 단계가 필요하고
인터프리터 언어는 별도의 '컴파일링' 과정이 필요 없다.
컴파일 언어의 경우 '컴파일링' 과정이 들어가기 때문에 인터프리터 언어보다 생산 속도가 느리다.
인터프리터 언어는 과정이 단순하기 때문에 생산 속도가 빠르다.
컴파일 언어에는 소스 코드 작성을 위한 제약사항이 스크립트형 언어보다 더 많다.
따라서 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 하며 각종 문법에 따른 제약 사항들도 알아야 한다.
인터프리터 언어는 간편한 만큼 잃는 것도 있다.
소스 코드가 실행되기 전까지는 소스 코드의 버그를 인지하는 것이 어렵다.
물론, 인지할 순 있지만 컴파일 언어에 비해 오류 인지 시점이 늦다.
또한, 컴파일 언어가 디버깅 작업이 훨씬 수월하다.
생산 속도는 인터프리터 언어가 더 좋지만
실행 속도는 컴파일 언어가 훨씬 더 빠르다.
컴파일을 한 뒤에 생성된 파일에 의해 프로그램이 실행되기 때문에
번역기에 의해 번역이 되고 실행되는 인터프리터 언어에 비해 훨씬 빠르다.
실행 속도는 C, C++ -> Java -> Python 순으로 느려지기 때문에
연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않는다.