콘텐츠로 이동

컴파일러와 인터프리터

수많은 프로그래밍 언어는 컴파일러 또는 인터프리터를 사용하냐로 구분됩니다.

대표적인 C/C++, Java, Kotlin과 같은 언어는 컴파일러를, JavaScript, Python, PHP 등은 인터프리터를 채택한 언어입니다.

그렇다면 컴파일러와 인터프리터의 차이는 무엇일까요?

컴파일러와 인터프리터의 정의

컴파일러(compiler)는 '고급 언어로 작성된 프로그램을 기계어로 번역'하는 소프트웨어입니다.

인터프리터(interpreter)는 '고급 언어로 작성된 프로그램을 한 줄씩 번역'하여 실행하는 소프트웨어입니다.

컴파일러와 인터프리터의 차이

'컴파일러'는 소스 코드를 입력으로 받아 '전체 코드'를 분석하고, 구문 및 의미 오류를 검사한 후 중간 코드를 생성하고 최적화하여 목적 코드(기계어)를 생성합니다. 이렇게 생성된 목적 코드는 더이상 소프트웨어의 도움을 받지 않고 단독 실행이 가능한 상태입니다.

'인터프리터'는 소스 코드를 입력으로 받아 '한 줄씩' 실행 가능한 기계어로 번역(인터프리팅)하여 실행합니다. 컴파일러와 다른 점은 인터프리터는 전체 코드를 한 번에 해석하지 않는 점입니다. 따라서 컴파일러보다 '실행 속도'는 대체적으로 느린 편입니다.

댓글