JavaScript/인터프리터언어vs컴파일언어

Trooper·2022년 8월 3일
0

JavaScript

목록 보기
2/13
post-thumbnail

자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터언어입니다.
자바스크립트는 컴파일 과정을 자바스크립트 엔진 내부에서 필요한 경우에 컴파일을 합니다.

출처 : advanced javascript from udemy

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

인터프리터 언어컴파일 언어
코드가 실행되는 단계인 런타임에 문 단위로 한줄 씩 중간 코드인 바이트코드로 변환한후 실행한다.코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한번에 머신 코드로 변환한 후 실행한다.
실행 파일을 생성하지 않는다.실행 파일을 생성한다.
인터프리트 단계와 실행 단계가 분리되어 있지 않다. 인터프리터는 한줄 씩 바이트 코드로 변환하고 즉시 실행한다.컴파일 단계와 실행 단계가 분리되어 있다. 명시적인 컴파일 단계를 거치고, 명시적으로 실행 파일을 실행한다.
코드가 실행될 때마다 인터프리트 과정이 반복 수행된다.실행에 앞서 컴파일은 단 한번 수행된다.
인터프리트 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느리다.컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠르다.

머신코드 : cpu가 바로 실행할 수 잇는 기계어

바이트코드 : 특정한 하드웨어가 아니라 가상 머신에서 실행하도록 만든 이진 코드

정리

자바스크립트는 인터프리터언어입니다.
자바스크립트도 컴파일 과정을 거칩니다.하지만 컴파일 과정을 자바스크립트 엔진 내부에서 필요한 경우에 컴파일을 한다.
자바스크립트의 성능을 비약적으로 향상 시킬 수 있었던 이유는 엔진 내부에서 컴파일 과정을 거치기 때문입니다.

Reference

  • 모던 자바스크립트 Deep Dive - 이웅모
profile
Web FrontEnd Developer

0개의 댓글