개발/JAVA

컴파일러언어와 인터프리터 언어의 차이점

윤_ve 2020. 12. 20. 15:23

자바 스크립트로 몇가지 실습 해본 뒤 국비지원 학원을 통해 자바 교육을 들을거라서 

자바를 미리 복습하기 위해 공부하기 시작했다.

 

우선 자바스크립트와 자바의 큰 차이점은 

자바 스크립트: 인터프리터

자바: 컴파일러

이것이다.

 

우선 양쪽 모두 만들어진 프로그래밍 언어를 기계어로 바꾸는 것은 동일하나 

그 과정에서의 차이가 있다.

 

우선 컴파일러는 전체 소스코드를 보고 명령어를 수집하고 재구성 하는 반면,

인터프리터는 각 행을 순차적으로 분석하여 실행한다.

 

그래서 오류가 나면 컴파일러의 경우는 컴파일 하는 도중에 오류가 나고,

인터프리터는 분석 도중 어느 행에 오류가 발생하면 그것을 알려주고 그 이후의 분석을 멈추게 된다.

 

인터프리터의 특징

1. 컴파일러는 소스코드 전체를 한 번 훑고 컴퓨터 프로세서가 실행 할 수 있도록 바로 기계어로 변환한다. 인터프리터는 고레벨 언어를 중간 코드(intermediate code)로 변환하고 이를 각 행마다 실행한다. 이 중간 코드는 다른 프로그램에 의해 실행된다.
2. 일반적으로 컴파일러가 각 행마다 실행하는 특성을 가진 인터프리터보다는 실행시간이 빠르다.
3. 컴파일러는 전체 소스코드를 변환 한 뒤 에러를 보고하지만 인터프리터는 각 행 마다 실행하는 도중 에러가 보고되면 이후 작성된 코드를 살펴보지 않는다. 이는 보안적인 관점에서 도움이 된다.
4. 예를 들어 파이썬은 인터프리트 언어이고 C, C++는 컴파일 언어이다. 자바는 컴파일러와 인터프리터 모두 사용한다. 

 

 

자바는 자바 컴파일러에서 분석을 한뒤 

바이트코드로 쓰여진 .class 파일로 변환된다.

이렇게 변환 된것을 실행하는 것이 JVM(Java Virtual Machine)이다.

이 과정은 인터프리터 과정으로 한번더 해석되서

실행이 되는 것이다.

 

자바가 처음 만들었을 때 내걸었던 슬로건,

'Write once, run everywhere'

JVM을 통해 어디서든 실행을 시킬수 있기에 내건 슬로건이다.

 

이런 차이가 있고 자바스크립트와 다른 방식으로 구동되는거라 아직은 낯설기도 하다.

 

<출처:m.blog.naver.com/ehcibear314/221228200531 >

정리가 잘되어 있어서 참고하였음. 

'개발 > JAVA' 카테고리의 다른 글

객체 와 클래스  (0) 2020.12.27
제어 흐름 이해하기  (0) 2020.12.22
연산자  (0) 2020.12.21
변수와 자료형 3  (0) 2020.12.20
자바 변수 자료형  (2) 2020.12.20