>  기사  >  웹 프론트엔드  >  자바스크립트 인터프리터란 무엇인가

자바스크립트 인터프리터란 무엇인가

青灯夜游
青灯夜游원래의
2021-12-07 16:15:544124검색

"JavaScript 엔진"이라고도 알려진 JavaScript 인터프리터는 JavaScript 스크립트 처리를 전문으로 하는 가상 머신입니다. 일반적으로 웹 브라우저에 포함되어 있습니다. JavaScript 인터프리터에는 어휘 분석기, 구문 분석기, 문자 분석기의 네 가지 구성 요소가 있습니다. 섹션 코드 생성기, 바이트코드 해석기.

자바스크립트 인터프리터란 무엇인가

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

자바스크립트 인터프리터란 무엇입니까

자바스크립트는 다른 사람이 해석하고 실행해야 하는 스크립트 언어인데, 이 상대방이 바로 자바스크립트 인터프리터입니다. JS 문을 읽고, 번역하고, 실행한 후 다음 JS 문을 읽고, 주기가 다시 시작됩니다.

JavaScript 엔진이라고도 알려진 JavaScript 인터프리터는 JavaScript 스크립트 처리를 전문으로 하는 가상 머신이며 일반적으로 웹 브라우저에 포함되어 있습니다. 그 기능은 JavaScript 소스 코드를 실행하는 것입니다.

JavaScript 구문 분석 엔진은 JavaScript 코드를 "읽고" 코드 실행 결과를 정확하게 제공할 수 있는 프로그램입니다.

JavaScript 인터프리터의 구성

JavaScript 인터프리터에는 어휘 파서, 구문 파서, 바이트코드 생성기 및 바이트코드 인터프리터의 네 가지 구성 요소가 있습니다.

어휘 파서

소스 코드 줄을 단어 의미의 가장 작은 단위로 분할할 수 있습니다. 소위 의미 단위는 문법적으로 나눌 수 없는 가장 작은 단일 문자 또는 문자 조합입니다.

  var number = 2;
  //解析成下面的json格式
  [
      {
        'type':'keyword',
        'value':'var'
      },
      {
        'type':'identifier',
        'value':'number',
      },
      {
        'type':'Punctuator',
        'value':'=',
      },
      {
       'type':'Numeric',
       'value':'2',
      }
      {
       'type':'Punctuator',
       'value':';'
      }
  ]

Syntax Analyser

위의 분석된 배열을 문법 규칙에 따라 추상 구문 트리로 변환하면 Esprimas 구문 분석 도구를 사용하여 json 형식으로도 변환된다는 것을 알 수 있습니다.

이 추상 구문 트리의 용도는 무엇인가요?

사람들이 코드 압축과 최적화에 대해 이야기하는데 저는 이해가 안 되네요. 그러다가 컴파일러, IDE 등의 용도가 많다고 합니다. (제 실력이 부족해서 지금은 들어갈 방법이 없습니다.)

I Meituan Dianping 기술에서 구문 트리를 사용할 수 있다는 것을 보았습니다. JavaScript 코드를 재구성하려면

바이트 코드 생성기

그 기능은 구문 트리를 JavaScript 엔진이 읽고 실행할 수 있는 바이너리 코드로 변환하는 것입니다.

각 JavaScript 엔진에는 고유한 바이트코드 형식이 있습니다. 가장 간단한 방법은 의미 단위를 바이너리로 변환하는 것입니다.

바이트코드 해석기

물론 링크 뒤의 이 링크에는 바이너리 코드가 있으며 다음 단계는 바이너리를 실행하는 것입니다. 코드를 작성하고 눈으로 볼 수 있는 결과를 만들어냅니다.

【관련 권장 사항: javascript 학습 튜토리얼

위 내용은 자바스크립트 인터프리터란 무엇인가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.