[프로그래밍] 02. 컴파일러(compiler)와 인터프리터(interpreter)의 차이

Seoeun Park·2024년 4월 17일

CS

목록 보기
2/10


🖥️ 인터프리터(interpreter)란?

고급 프로그래밍 언어로 작성한 원시 코드 (Source Code)를 컴파일 하지 않고, 코드 한 줄 단위로 바로 실행하는 방식으로 동작하는 프로그램이다.
인터프리터를 사용하는 언어의 종류로는 JavaScript, Python, Ruby 등이 있다.


🖥️ 인터프리터 처리 과정

interpreter


🖥️ 컴파일러와 인터프리터의 공통점과 차이점

공통점 :
고급 언어로 작성된 프로그램을 컴퓨터 내부에서 사용 가능한 기계어로 변환하기 위해 사용하는 프로그램이다.

차이점 :
컴파일러는 프로그램 전체를 번역해서 기계어로 이루어진 프로그램을 생성하여 실행한다면, 인터프리터는 작성된 코드 한 문장씩 기계어로 변환해서 바로 실행한다.
즉 한 마디로 말하자면, 컴파일러는 고급 프로그래밍 언어를 기계어(어셈블리어)로 '번역'을 하며, 인터프리터'동시통역'을 한다고 볼 수 있다.


🖥️ 컴파일러와 인터프리터의 장·단점

  • 컴파일러
    장점단점
    ▪ 전체적으로 한 번 디코딩하면 그 다음부터는 실행만 하므로, 실행시간 측면에서 효율적.
    ▪ 반복문이나 계속 호출되는 부프로그램처럼 많은 횟수를 반복 처리하는 프로그램의 경우에 큰 도움이 됨.
    ▪ 몇 줄의 소스 프로그램이 몇백 줄의 기계어로 번역되어 큰 기억 장소를 필요로 할 수도 있음.
  • 인터프리터
    장점단점
    ▪ 한 줄 단위로 번역과 실행을 하여 매번 같은 기억 장소를 사용하므로 기억장소를 줄일 수 있음.
    ▪ 별도의 실행파일이 없어서 코드를 수정할 때 용이함.
    ▪ 고급언어로 작성된 프로그램을 한 줄 단위로 번역과 실행을 하기 때문에 반복문과 같은 컴파일러보다 실행시간이 많이 소요됨.

출처 :
https://builtin.com/software-engineering-perspectives/compiler-vs-interpreter
https://velog.io/@congaweb/compiler-interpreter
noodabee님의 [컴파일러 언어와 인터프리터 언어 비교]

profile
게임 개발 공부 시작!

0개의 댓글