컴파일러 VS 인터프리터?

0️⃣1️⃣·2021년 5월 13일
0

면접 준비

목록 보기
10/11

컴파일러와 인터프리터의 역할?

  • 컴파일러와 인터프리터는 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 만들어준다는 역할은 동일

  • 특정 언어로 만든 소스 코드를 실행시키기 위해서 필요한 과정을 담당

컴파일러?

  • 전체 소스 코드를 머신코드로 한번에 변경(머신 코드)

  • 소스 코드를 분석하는데 오랜 시간이 걸림

  • 머신 코드를 CPU에서 직접 실행할 수 있으므로 소요 시간은 짧음

  • 전체 소스 코드를 대상으로 분석하므로 더 많은 메모리가 필요

  • 전체 프로그램을 스캔한 후에 에러가 발생하므로 디버깅이 어려움

  • C, C++

인터프리터?

  • 전체 소스 코드를 머신코드로 한줄씩 변경(바이트 코드)

  • 소스 코드를 분석하는데 짧은 시간 소요

  • 바이트 코드를 CPU에서 직접 실행하지 않고 가상 머신(Virtual Machine)에서 해당 코드를 실행하므로 오버헤드에 따른 소요 시간이 길다

  • 한줄씩 처리하므로 적은 메모리가 필요

  • 한줄씩 처리하므로 디버깅이 간편

  • Java, Ruby, Python

  • 자바의 경우 인터프리터의 단점을 해소하기 위해, JIT Complier를 추가적으로 사용하고 있음

0개의 댓글