인터프리터 언어란?
- 원시 코드를 기계어로 변환하는 과정 없이 한 줄 한 줄 해석하여 바로 명령어를 실행하는 언어 → R, Python, Ruby
- 인터프리터가 직접 한 줄 씩 읽고 기계어로 변환하지 않기 때문에 빌드 시간이 없다.
- Runtime 상황에서는 한 줄 씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느립니다
- 실행 속도는 느리지만 코드 변경 시 빌드 과정 없이 바로 실행이 가능하다는 장점이 있습니다.
<aside>
💡 원시 코드
</aside>
컴파일 언어란?
- 원시 코드를 모두 기계어로 변환한 후에 기계(JVM, Java Virtual Machine)에 넣고 기계어 코드를 실행
- 소스 코드를 기계어로 번역하는 빌드 과정에서 인터프리터 언어에 비해 시간이 소요된다.
- 런타임 상황에서는 이미 기계어로 모든 소스 코드가 변환되어 있기 때문에 빠르게 실행 가능하다. → C, C++
빌드 과정이란?
- 소스 파일을 실행 파일로 생성하는 과정
- 고급 언어 —> (변환) —> 저급 언어(기계어)
- 인터프리터 언어는 빌드 과정 없이 바로 고급 언어에서 한 줄 씩 읽어서 실행, 컴파일러 언어와 같은 C, Java는 .class 파일 등과 같이 변환하여 실행
자바는?
- 컴파일러와 인터프리터 모두를 사용한다.
- javac 컴파일러는 .java 파일을 중간 코드인 바이트 코드로 번역하여 .class파일을 생성한다.