본문 바로가기
컴퓨터구조

[컴퓨터 구조][기초] 컴파일 언어, 인터프리터 언어

by codingbird1234 2025. 3. 9.

*해당 글은 '혼자 공부하는 컴퓨터구조 + 운영체제(강민철 지음)'을 참고하여 작성되었습니다.

*구체적인 예시와 함께 더 자세히 공부하고 싶으신 분들은 해당 책을 읽어보시기를 추천드립니다.

 

 

 

지난 시간에 고급 언어와 저급 언어를 배웠습니다!

우리가 일반적으로 사용하는 프로그래밍 언어인 고급 언어는 컴퓨터가 이해할 수 없다고 했었습니다.

컴퓨터는 저급 언어를 이해할 수 있기 때문이죠.

그래서 우리가 고급 언어로 작성한 소스 코드를 컴퓨터가 실행할 때, 이 고급 언어는 저급 언어로 변환됩니다.

 

고급 언어가 저급 언어로 변환되는 방식에는 크게 두 가지가 있습니다.

바로 컴파일 방식과, 인터프리트 방식입니다.

이에 따라, 프로그래밍 언어를 컴파일 언어 인터프리터 언어로 나누기도 합니다.

순서대로 한 번 알아봅시다!

 

 

 

컴파일 언어

컴파일(Compile)이란, 어떤 언어로 된 코드 전체가 다른 언어로 바뀌는 과정을 말합니다.

이 컴파일은 컴파일러를 통해 이루어지는데요, 컴파일러(Compiler)어떤 언어를 다른 언어로 바꾸는 번역기라고 생각하면 됩니다.

컴파일 언어란, 컴파일러에 의해 고급 언어로 된 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어입니다.

대표적인 컴파일 언어에는 C가 있습니다.

 

컴파일러는 소스 코드 전체를 보면서 오류는 없는지, 실행 가능한지, 불필요한 부분은 없는지 등을 파악합니다.

그리고 소스 코드 전체를 저급 언어로 컴파일합니다.

만약 컴파일러가 소스 코드 내에서 문제를 확인하게 되면, 해당 소스 코드를 컴파일에 실패하게 됩니다.

컴파일에 성공하면, 소스 코드는 저급 언어로 변환되겠죠? 이와 같이 컴파일러를 통해 저급 언어로 변환된 코드

목적 코드(Object Code)라고 합니다.

 

 

 

 

인터프리터 언어

인터프리터 언어란, 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어입니다.

컴파일 언어는 컴파일러에 의해 소스 코드 전체가 변환되어 실행되는 반면, 인터프리터 언어는 인터프리터에 의해 한 줄씩 실행됩니다.

때문에 소스 코드 전체를 변환하는 시간을 기다리지 않아도 됩니다. 한 줄씩만 실행하니까요.

그리고 문제가 있는 부분 전까지는 정상적으로 수행됩니다.

(인터프리터(Interpreter)소스 코드를 한 줄씩 저급 언어로 변환시켜 실행하는 도구입니다.)

대표적인 인터프리터 언어로는 Python이 있습니다.

 

 

 

이렇게 컴파일 언어와 인터프리터 언어에 대해 알아봤습니다!

일반적으로, 인터프리터 언어는 컴파일 언어보다 느립니다.

인터프리터 언어의 경우, 한 줄씩 실행하기 때문에 전체 변환 시간을 기다리지 않아도 되지만,

코드 전체에 대한 실행 시간으로 보면 컴파일 언어보다 오래 걸리기 때문이죠.

(인터프리터 언어는 한 줄씩 해석하고 실행하는 것을 반복해야 합니다!)

 

 

*주의*

모든 프로그래밍 언어를 컴파일 언어, 인터프리터 언어로 칼 같이 나눌 수 있지는 않습니다.

어떤 언어는 두 가지 방식을 모두 이용하기도 하기 때문이죠.

따라서 고급 언어가 저급 언어로 변환되는 대표적인 방법으로 컴파일 방식인터프리트 방식이 있다고 생각하시면 됩니다!

 

다음 시간에는 이번 시간의 내용과 이어지는 목적 파일실행 파일에 대해 알아보겠습니다!