자바스크립트 엔진

2020. 3. 2. 15:09웹/Javascript

정의

  • 자바스크립트 코드를 실행하는 프로그램/인터프리터

  • 자바스크립트 엔진은 표준적인 인터프리터로 구현 될 수 있고, 특정한 방식으로 바이트코드로 Just In Time(JIT)컴파일로 구현 할 수도 있음

  • 여러 목적으로 사용될 수 있지만 주로 웹 브라우저를 위해 사용

  • 자바스크립트 코드를 해석하고 실행하기 위해 만들어진 일종의 프로세스 가상 머신

 

 

역할

  • 자바스크립트 코드를 브라우저에 의해 해석되거나 어플리케이션 임베드 될 수 있는 최적화된 코드로 변환하는 역할

  • 자바스크립트 코드를 마이크로프로세서가 이해할 수 있는 더 낮은 수준의 언어 혹은 기계어로 변환해주는 역할

 

 

종류

  • Google - V8 (Chorme과 Node.js 사용)

  • Mozilla- Rhino

  • Firefox - SpiderMonkey

  • Safari - JavascriptCore

  • IE,Edge - Chakra

 

 

동작 과정

 

이미지 출처 : https://mathiasbynens.be/notes/shapes-ics  

  1. 자바스크립트 소스 작성
  2. 파싱
  3. AST(Abstract Syntax Tree) 생성
  4. 인터프리터가 AST를 가지고 최적화 되지 않은 바이트 코드를 빠르게 생성
    이 시점에서 엔진은 실제로 Javascript 코드를 실행
  5. 최적화 컴파일에서 약간의 시간을 들여 최적화된 기계어 코드 생성
  6. 만약 정확하지 않은 결과가 나왔다면 다시 바이트 코드로 변경(deoptimize)

 

 

 

 

 

 

출처 

https://ko.wikipedia.org/wiki/자바스크립트_엔진

https://engineering.huiseoul.com/자바스크립트는-어떻게-작동하는가-v8-엔진의-내부-최적화된-코드를-작성을-위한-다섯-가지-팁

https://soldonii.tistory.com/52

' > Javascript' 카테고리의 다른 글

DOM(Document Object Model)  (0) 2020.03.05
콜스택과 메모리 힙  (0) 2020.03.05
Javascript Runtime  (0) 2020.03.05
브라우저 랜더링  (0) 2020.03.02
자바스크립트 엔진 - V8  (0) 2020.03.02