-
- 인터프리터 언어
- 내가 작성한 코드(=원시코드)를 기계어로 변환하는 과정 없이 라인 바이 라인 바로 해석하여 바로 명령어를 실행하는 언어
- ex : Python, R, Ruby
- 인터프리터가 직접 한 줄씩 읽어 따로 기계어로 변환하지 않기 때문에 빌드 타임 X
- 한 줄씩 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느림
- 컴파일러 언어
- 원시코드 -> 기계어 -> 기계(ex: jvm)에 넣고 실행
- ex : C, C++
- 이미 모든 코드가 기계어로 변환 되어 있기 때문에 빠르게 실행 가능
- 빌드 과정이란 ?
- 소스코드로 실행파일로 생성하는 과정
- 고급 언어 -> 저급 언어
- JVM : 자바 가상 머신
- Java Byte Code 를 OS에 맞게 해석해주는 역할
- Java compiler는 .java 파일을 .class 라는 java byte code 로 변시켜줌
- Byte code는 기계어가 아니기 때문에 OS에서 바로 실행 X
- JVM은 OS가 Byte code 이해할 수 있도록 해석해줌
- C언어와 같은 네이티브언어에 비해 속도가 느렸음 -> JIT(Just In Time) 컴파일러 구현으로 인해 극복
