Programming/etc

컴파일러(compiler)와 인터프리터(interpreter)

esoog Polaris 2023. 6. 27. 00:26
반응형

컴파일러(Compiler)와 인터프리터(Interpreter)는 프로그래밍 언어 코드를 실행 가능한 형태로 변환하는 데 사용되는 두 가지 주요 방법입니다. 다음은 컴파일러와 인터프리터의 개념과 주요 차이점에 대한 설명입니다.

컴파일러:
컴파일러는 프로그래밍 언어 코드를 기계어나 중간 언어로 변환하는 프로그램입니다. 컴파일러는 소스 코드 전체를 한 번에 읽고, 분석하고, 변환하여 실행 가능한 파일(바이너리)을 생성합니다. 이 파일은 컴퓨터에서 직접 실행할 수 있습니다. 컴파일러는 컴파일 과정에서 코드를 최적화하고, 오류를 검출하고, 실행 속도를 향상시킬 수 있습니다. 일반적으로 컴파일러를 통해 생성된 실행 파일은 다양한 환경에서 반복적으로 실행할 수 있으며, 빠른 실행 속도를 제공합니다. 그러나 컴파일러는 코드 수정 시 재컴파일을 필요로 하며, 다른 플랫폼에 이식성을 제공하기 위해서는 해당 플랫폼용으로 재컴파일해야 합니다.

인터프리터:
인터프리터는 프로그래밍 언어 코드를 한 줄씩 읽어들여 즉시 실행하는 프로그램입니다. 소스 코드를 읽고 해석하며, 명령문을 순차적으로 실행하여 결과를 즉시 반환합니다. 인터프리터는 소스 코드를 실행하기 위해 중간 단계의 변환 과정을 거치지 않으므로, 실행 과정에서의 대부분의 최적화가 이루어지지 않습니다. 이러한 특성으로 인해 인터프리터는 일반적으로 컴파일러보다 실행 속도가 느리지만, 코드 수정이 쉽고 유연한 개발 환경을 제공합니다. 또한, 인터프리터는 플랫폼에 구애받지 않고 동일한 소스 코드를 실행할 수 있으므로 이식성이 높습니다. 그러나 반복적인 실행 시마다 코드를 해석해야 하므로 실행 속도가 상대적으로 느릴 수 있습니다.

요약하면, 컴파일러는 전체 소스 코드를 한 번에 변환하여 실행 파일을 생성하고, 실행 속도와 최적화에 강점을 가지며, 코드 수정 시 재컴파일을 필요로 합니다. 반면에, 인터프리터는 소스 코드를 한 줄씩 해석하고 즉시 실행하여 개발자에게 유연성과 이식성을 제공하며, 실행 속도는 상대적으로 느릴 수 있습니다.

 

 

 

*참고로 컴퓨터가 기본적으로 다루는 데이터의 크기는 byte(8bit)

728x90