전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 두 가지가 있다.
정적 컴파일 방식을 사용하는 언어 번역 프로그램
실행하기 전에 프로그램 코드(원시 코드)를 기계어와 같은 목적 코드로 번역
고급 프로그래밍 언어
- 사람이 이해하기 쉽게 작성된 프로그래밍 언어
- C, 자바 등등...
- 추상화 수준이 높을수록 높은 수준의 언어
- 장점
- 가독성이 높음
- 유지 보수가 간단
- 단점
- 느린 속도
저급 프로그래밍 언어
- 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어
- 일반적으로 기계어나 어셈블리어를 일컬음
- 장점
실행 속도가 매우 빠름
- 단점
- 배우기 어려움
- 유지 보수가 힘듬
인터프리트 방식을 사용하여 소스 코드를 바로 실행하는 프로그램
실행 중 프로그래밍 언어를 한줄 씩 읽어가면서
해당 기능에 대응하는 기계어 코드를 실행
JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다.
현대에 들어 자바 가상머신과 V8과 같은 많은 인터프리터가 JIT컴파일 등의 기술로 실시간 컴파일을 수행하므로, 컴파일러와 인터프리터 사이의 기술적 구분은 사라져 가는 추세이다.