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

ether·2022년 7월 18일
0

CS

목록 보기
1/1

컴파일러와 인터프리터는 모두 프로그래밍 언어를 기계어로 변환해준다는 공통점을 가지고 있습니다. 그럼 이 둘의 차이는 무엇일까요?

컴파일러는 전체 코드를 한번에 변환하지만 인터프리터는 한 번에 한 행씩 분석하며 변환합니다.

더 자세히 알아보도록 하겠습니다.

컴파일러란?

  1. 프로그램 전체를 분석하여 기계어로 변환합니다.
  2. 전체를 스캔하기 때문에 컴파일러는 초기 스캔 시간이 오래 걸립니다.
  3. 초기 스캔을 한 번 하고 나면 실행파일을 만들어놓은 후 다음 실행을 할 때는 이전에 만들어두었던 실행파일을 실행하기 때문에 전체 수행 속도는 인터프리터보다 빠릅니다.
  4. 실행파일을 만드는 과정에서 오브젝트 코드(Object Code)들을 링킹(Linking)하느라 메모리를 더 많이 사용한다는 단점이 있습니다.
  5. 전체 코드를 검사한 후 오류 메시지를 생성하므로 컴파일 후에 오류를 발견할 수 있습니다.
  6. 예시 : C, C++, Java(둘 다 사용)

인터프리터란?

  1. 프로그램 실행 시 한 번에 한 문장만 번역합니다.
  2. 코드를 한 줄씩 읽은 후 다른 중간 코드나 기계어로 변환해서 임시파일로 저장하여 바로 실행합니다.
  3. 기계어로 변환된 코드를 실행파일로 바로 작성하지 않고, 메모리에 바로 로드시켜 실행합니다.
  4. 변환과 실행을 동시에 해야하므로 실행 속도가 느립니다.
  5. 소스 코드를 한 줄씩 실행하므로 에러를 바로 알려줘서 실시간 코드 수정이 가능합니다.
  6. 예시 : Python, Ruby, Javascript

컴파일러와 인터프리터의 비교

컴파일러인터프리터
실행 속도빠름느림
메모리 사용량많음적음
에러 알림 시기실행 전실행 후
profile
Backend Developer

0개의 댓글