인터프리터 언어와 컴파일 언어

GARY·2022년 4월 20일
0

구글링을 하다 보니 '인터프리터 언어라서...'라는 말이 자주 보여 인터프리터 언어는 무엇인가 정리해 보려 한다.

인터프리터 언어

원시코드를 기계어로 변환하는 과정없이 한줄 한줄 해석하여 바로 명령어를 실행하는 언어
EX) JavaScript, R, Python, Ruby

특징

1> 한 줄씩 읽고 따로 기계어로 변환하지 않기 때문에 빌드 시간이 없음
2> Runtime 상황에서는 한 줄씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느림
3> 코드 변경시 빌드 과정없이 바로 실행이 가능
4> 오류가 있는 코드를 만나기 전까지는 실행이 가능

컴파일 언어

원시코드를 모두 기계어로 변환한 후 실행하는 언어
EX) C, C++

특징

1> 소스코드를 기계어로 번역하는 빌드 과정에서는 인터프리터 언어에 비해 시간이 소요
2> 런타임 상황에서는 이미 기계어로 모든 소스코드가 변환되어 있기 때문에 빠르게 실행
3> 코드를 수정하면 다시 컴파일 과정을 거쳐야 함
4> 오류가 있는 코드가 존재하면 아예 실행이 안됨

빌드란?

소스파일을 실행파일로 생성하는 과정 (고급언어 --> 저급언어 과정을 거쳐 실행파일 생성)

JAVA

Java는 컴파일 언어와 인터프리터 언어를 혼합한 하이브리드 언어이다.
처음에는 인터프리터 언어로서 사용되다 성능 향상을 위해 컴파일 언어의 장점을 가져왔다고 한다.

JAVA 작동 원리

  • 원시코드를 자바 컴파일러(Java Compiler)를 통해 자바 바이트 코드(.class 파일)로 번역 (컴파일 언어 특징)
  • JVM의 자바 인터프리터에 의해 한 줄씩 읽으면서 2진 코드로 변환 후 실행 (인터프리터 언어 특징)

코딩을 하면서 JSP 파일을 수정했을 땐 서버 재시작을 안 하고 controller를 수정했을 때 재시작을 한 이유를 이젠 알겠다.👍

profile
개발하는 개린이 개리

0개의 댓글