1. Compiler(컴파일러)
- 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성한다.
- 번역 실행 과정을 거쳐야 하기 때문에 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠르다.
- 사용 언어에는 C언어 Java 등이 있다.
2. Interpreter(인터프리터)
- 고급 언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램이다.
- 프로그램이 직접 실행되므로 목적 프로그램은 생성되지 않는다.
- 줄 단위로 번역, 실행되기 떄문에 시분할 시스템에 유용하며 원시 프로그램의 변화에 대한 반응이 빠르다.
- 번역 속도는 빠르지만 프로그램 실행 시 매번 번역해야 하므로 실행 속도는 느리다.
- 사용 언어에는 Python, BASIC, SNOBOL, LISP, APL등이 있다.
- CPU의 사용시간의 낭비가 크다.
3. Compiler와 Interpreter의 차이점