Just In Time 컴파일러
인터프리터 언어 : 소스코드 전체를 기계어로 변환하는 과정없이 한줄씩 해석하며 명령어를 실행한다. 번역과 실행이 동시에 이뤄져 실행파일이 존재하지 않는다. 컴파일 과정이 없어 소스코드로부터 실행이 빠르다. 대체로 플랫폼 독립적이다
ex) 파이썬
컴파일러 언어 : 소스코드 전체를 기계어로 변환하고 실행하는 언어. 실행파일이 있고, 번역과 실행이 따로 이뤄진다. 컴파일이 이미 이뤄진 경우 인터프리터 언어 프로그램보다 훨씬 빨리 동작한다. 대체로 플랫폼 구속적이다
ex) C
사실 JIT 인터프리터에 가깝다
바이트코드를 기계어로 바꾸는 프로그램
JIT 컴파일러는 프로그램이 시작되고 코드를 컴파일한 후에 JIT 컴파일러를 실행한다
동일한 바이트코드를 플랫폼에 맞게 컴파일해 크로스 플랫폼 지원에 중요한 기능이다
대표적으로 자바의 JVM에서 사용된다
번역하는 코드를 캐싱하기 때문에 오버헤드가 줄어 실행속도가 빨라진다
바이트코드를 기계어로 컴파일하며 최적화도 한다
인터프리터와 컴파일러의 특징을 모두 갖는다
바이트코드 : 가상머신에서 돌아가는 실행 프로그램을 위한 이진 표현법. 소프트웨어로 처리되기 때문에 기계어보다 추상적이다 ex) 자바의 .class 파일