본문 바로가기

FrontEnd

자바스크립트 엔진이 코드를 실행하는 과정

자바스크립트 엔진

• node.js로 생각하면 JS 구동 플렛폼으로서 구글크롬 자바크립트 엔진인 V8로 만들어졌다. 

• 보통 브라우저들마다 엔진의 종류는 다르나 구동방식은 비슷하다.

• 자바스크립트 엔진은 자바스크립트 소스코드를 파싱하여 AST(Abstract Syntax Tree)로 변환한다.

인터프리터는 AST기반으로 바이트 코드를 생성한다.

• 인터프리터는 프로파일링 데이터(자주 사용하는 함수 및 타입정보)를 바이트코드와 같이 최적화 컴파일러(Optimizing compiler) 에게 보낸다.

• 최적화 컴파일러는 바이트 코드와 프로파일링 데이터로 최적화 코드(Optimized code)를 생성한다.

• 프로파일링 코드가 잘못된 경우 최적화를 풀고(Deoptimize) 다시 바이트코드로 돌아가 반복과정을 거친다.

 

 


AST(Abstract Syntax Tree)

• 특정 언어로 작성된 프로그램의 소스코드를 각각 의미별로 분리하여 컴퓨터가 이해할 수 있는 구조로 변경시킨 트리

• Abstract Syntax라는 것은 데이터의 구조와 종류만 포함되는데 프로그래밍 언어의 문법 및 각 문단의 역할을 표현한다.

• 코드의 문법적인 측면에서 문제가 없을 경우를 판별할 때 사용된다.

 

인터프리터

• 소스코드를 만나 런타임뒤에 행별로 해석하며 프로그램을 구동시키는 방식으로 런타임 중간에 디버깅이 가능한 방식이다. 필요할 때 마다 메모리 소스를 할당 받아서 사용한다.

• 컴파일러와는 전혀다른 방식이다.

 

최적화코드(Optimized Code)

• 여기서 말하는 최적화 코드란 컴퓨터가 이해할 수 있는 기계어를 말한다.

 


 

참고

code-giraffe.tistory.com/44

 

[ Compiler ] Abstract syntax tree

[ Compiler ] Abstract syntax tree # AST, 다른말로 "Abstract Syntax Tree" 혹는 "Syntax Tree" 라고 불리는 이 Tree는 프로그래밍 언어로 쓰여진 소스코드의 abstract syntactic 구조를 표현하기 위해서 사용됩..

code-giraffe.tistory.com

github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/frontend/bom-dom.md

 

baeharam/Must-Know-About-Frontend

:mortar_board: 취준생이라면 반드시 알아야 하는 프론트엔드 관련 지식들. Contribute to baeharam/Must-Know-About-Frontend development by creating an account on GitHub.

github.com

yuddomack.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%A0%88%EC%9D%B4%EC%85%98%EC%BD%94%EB%93%9C%EC%9D%98-%EC%8B%A4%ED%96%89%EA%B3%BC%EC%A0%95

 

자바스크립트 컴파일레이션(코드의 실행과정)

지금부터 다룰 내용들은 개인적으로 고급 개념이라고 생각합니다. 다만 저의 클라스가 아직 그 영역에 미치지 못하기에 초/중급자의 눈으로 뇌피셜을 섞어서 풀어내보겠습니다. 1. 개요 자바스

yuddomack.tistory.com

 

'FrontEnd' 카테고리의 다른 글

CD와 CI  (0) 2021.01.14
모듈 번들러와 트랜스파일러  (0) 2021.01.14
BOM & DOM  (0) 2021.01.13
브라우저의 렌더링 과정  (0) 2021.01.13
CSR(Client Side Rendering) 과 SSR(Sever Side Rendering  (0) 2021.01.13