[기술면접/C,C++] 컴파일러, 인터프리터

김현아·2024년 9월 10일

기술면접

목록 보기
1/14

컴파일러 Compiler

전체 소스 코드 파일을 읽고, 이를 기계어나 중간 언어로 번역한 후, 실행 가능한 바이너리 파일로 변환한다. (변환 과정은 전처리, 컴파일, 어셈블리, 링크 단계)
컴파일러에 의해 생성된 실행 파일은 컴퓨터에서 직접 실행될 수 있다.
변환된 코드는 컴퓨터의 CPU에서 직접 실행된다.

  • 전처리 : 코드 취합 ->파일 생성(.i, .ii)
  • 컴파일 : 어셈블리어 변환, 문법 오류 확인 ->파일 생성(.s)
  • 어셈블리 : 기계어 변환 -> 파일 생성(.obj)
  • 링크 : .obj파일 -> .exe파일 생성

인터프리터 Interpreter

소스 코드를 한 줄씩 읽고, 각 줄을 즉시 실행 가능한 형태로 번역하고 실행한다.
전체 소스 코드를 먼저 변환하지 않고, 실행 중에 번역 및 실행이 동시에 이루어진다.
소스 코드는 직접 해석되며, 인터프리터 각 줄을 번역하여 실행한다.
소스 코드를 수정하고 즉시 실행할 수 있다.

차이점

- 실행시간
컴파일러는 소스 코드를 한번만 변환하고 실행 파일을 생성하므로 실행 시간이 빠르다.
인터프리터는 소스 코드를 실행할 때마다 번역 및 실행 과정이 반복되기 때문에 실행 시간이 더 느리다.
- 오류검출
컴파일러는 소스 코드를 컴파일하는 동안 오류 검출하며, 전체 소스 코드를 검토할 수 있다.
인터프리터는 소스 코드를 실행 중에 발생하는 오류만을 검출할 수 있다.
- 플랫폼 독립성
일부 컴파일러는 컴파일된 코드가 특정 플랫폼에 종속적일 수 있다.
인터프리터는 플랫폼이 독립적이다.~~

0개의 댓글