컴파일러와 인터프리터는 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정에 관여하는 프로그램.
컴파일러
- 전체 변환 : 소스 코드의 전체를 읽어 한번에 기계어로 변환함. 변환 과정을 거친 후, 생성된 기계어 코드를 실행함.
- 속도 : 컴파일 과정 자체는 시간이 걸리지만, 변환된 코드는 직접 실행되므로 실행 시간은 빠름
- C, C++, Go, Rust등의 언어가 컴파일러를 사용함
- 코드를 수정했을 때 컴파일 과정이 필요함
인터프리터
- 한 줄씩 변환 : 소스 코드를 한 줄씩 읽어가며 바로 기계어로 변환하고 실행
- 속도 : 컴파일 단계가 없으므로 초기 시작은 빠르지만, 전체 코드 실행 시간은 컴파일러를 사용할 때 보다 느릴 수 있음. 코드를 실행할 때마다 변환 과정을 거치기 때문
- python이 대표적으로 인터프리터 방식 사용
- 코드 수정 시 컴파일 과정이 필요하지 않음
모두 고수준의 언어를 기계어로 변환한다는 공통점
기타) JIT 컴파일러
- JVM, .Net, V8
출처 인프런 CS 지식의 정석