인터프리터와 컴파일러(202510043 이경훈) - aksrud/3kingOfGod GitHub Wiki
인터프리터(interpereter)
인터프리터란 코드를 한 줄 한 줄 실행하는 프로그램으로 바이너리 코드를 만들어 실행하는 것이 아니라 그 파일 자체를 그 언어의 인터프리터를 이용하여 실행하기 때문에 인터프리터 언어의 실행 속도가 컴파일 언어보단 느리다. ex.) 인터프리터 언어 : Python, Ruby, JavaScript, R 등등...
컴파일러(complier)
컴파일러는 인터프리터와 다르게 코드를 한번에 바이너리 코드로 바꾸는 프로그램으로 컴파일을 하면 바로 실행 가능한 exe 파일을 만들어 인터프리터 언어 보다 컴파일 언어가 더 실행 속도가 빠르다. ex.) 컴파일러 언어 : C, C++, C#, Java, Objective C, Swift, Go, Rust 등등
번외
자바는 컴파일러 언어이기는 하지만 모든 운영체제에서 실행되기 위해서
컴파일을 하면 JVM이 해석 할 수 있는 바이트코드 .class코드(IL : 중간 언어)가 생성되는데
여기서 인터프리터 식으로 각 운영체제에 따른 JVM으로 .class코드를 해석해서
각 운영체제에 맞는 바이너리 코드를 만들어 실행한다.
이를 개선하기 위해 jit(just-in-time)컴파일 방식을 쓰어 주요 반복 내용을 캐싱하여 컴파일 시간과 수행 시간을 보완한다.