자바 스크립트로 몇가지 실습 해본 뒤 국비지원 학원을 통해 자바 교육을 들을거라서
자바를 미리 복습하기 위해 공부하기 시작했다.
우선 자바스크립트와 자바의 큰 차이점은
자바 스크립트: 인터프리터
자바: 컴파일러
이것이다.
우선 양쪽 모두 만들어진 프로그래밍 언어를 기계어로 바꾸는 것은 동일하나
그 과정에서의 차이가 있다.
우선 컴파일러는 전체 소스코드를 보고 명령어를 수집하고 재구성 하는 반면,
인터프리터는 각 행을 순차적으로 분석하여 실행한다.
그래서 오류가 나면 컴파일러의 경우는 컴파일 하는 도중에 오류가 나고,
인터프리터는 분석 도중 어느 행에 오류가 발생하면 그것을 알려주고 그 이후의 분석을 멈추게 된다.
인터프리터의 특징은
1. 컴파일러는 소스코드 전체를 한 번 훑고 컴퓨터 프로세서가 실행 할 수 있도록 바로 기계어로 변환한다. 인터프리터는 고레벨 언어를 중간 코드(intermediate code)로 변환하고 이를 각 행마다 실행한다. 이 중간 코드는 다른 프로그램에 의해 실행된다.
2. 일반적으로 컴파일러가 각 행마다 실행하는 특성을 가진 인터프리터보다는 실행시간이 빠르다.
3. 컴파일러는 전체 소스코드를 변환 한 뒤 에러를 보고하지만 인터프리터는 각 행 마다 실행하는 도중 에러가 보고되면 이후 작성된 코드를 살펴보지 않는다. 이는 보안적인 관점에서 도움이 된다.
4. 예를 들어 파이썬은 인터프리트 언어이고 C, C++는 컴파일 언어이다. 자바는 컴파일러와 인터프리터 모두 사용한다.
자바는 자바 컴파일러에서 분석을 한뒤
바이트코드로 쓰여진 .class 파일로 변환된다.
이렇게 변환 된것을 실행하는 것이 JVM(Java Virtual Machine)이다.
이 과정은 인터프리터 과정으로 한번더 해석되서
실행이 되는 것이다.
자바가 처음 만들었을 때 내걸었던 슬로건,
'Write once, run everywhere'
JVM을 통해 어디서든 실행을 시킬수 있기에 내건 슬로건이다.
이런 차이가 있고 자바스크립트와 다른 방식으로 구동되는거라 아직은 낯설기도 하다.
<출처:m.blog.naver.com/ehcibear314/221228200531 >
정리가 잘되어 있어서 참고하였음.