JavaScript 的编译原理

作者: Null丶sleep | 来源:发表于2021-05-25 16:29 被阅读0次

1. 分词/词法分析

将由字符串组成的字符串 分解为 有意义的代码块。

2. 解析/语法分析

将词法单元流(数组),转换为一个由元素逐级嵌套的所组成的程序语法树,这棵树也成为AST抽象语法树.

3. 代码生成

将AST转换为可执行的代码的这个过程,称为代码生成。简单来说就是某种方法来将AST语法树转换为机器指令,用来创建,分配内存等.并且将值存储.

例子

var a = 2

AST语法树

{
  "type": "Program",
  "start": 0,
  "end": 189,
  "body": [
    {
      "type": "VariableDeclaration",
      "start": 179,
      "end": 188,
      "declarations" : [
        {
          "type": "VariableDeclarator",
          "start": 183,
          "end": 188,
          "id": {
            "type": "Identifier",
            "start": 183,
            "end": 184,
            "name": "a"
          },
          "init": {
            "type": "Literal",
            "start": 187,
            "end": 188,
            "value": 2,
            "raw": "2"
          }
        }
      ],
      "kind": "var"
    }
  ],
  "sourceType": "module"
}

相关文章

  • JavaScript的工作原理:解析、抽象语法树(AST)+ 提

    摘要: JS的"编译原理"。 原文:JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个...

  • JavaScript 的编译原理

    1. 分词/词法分析 将由字符串组成的字符串 分解为 有意义的代码块。 2. 解析/语法分析 将词法单元流(数组)...

  • 理解JavaScript中的LHS和RHS

    参考资料:凯尔·辛普森《你不知道的JavaScript(上卷)》 1. 编译原理 JavaScript引擎首先会在...

  • JavaScript 作用域

    作用域是什么 参考和摘录自《你不知道的JavaScript(上)》 编译原理 通常将 JavaScript 归类为...

  • 第一章作用域是什么

    1.1 编译原理 编译语言 分词/词法分析 解析/语法分析 代码生成 对于Javascript来说,大部分情况发生...

  • 1.1作用域

    第1章,作用域是什么? 1.1 编译原理 JavaScript事实上是一门动态编译语言所有执行的语句都需要编译,只...

  • 你不知道的JS(上卷)

    作用域是什么 1.1编译原理 JavaScript引擎编译的步骤与传统的编译语言类似。程序中的一段源代码在执行前会...

  • 一篇梳理常见的JavaScript引擎

    前言 今天在看JavaScript编译原理相关知识,接触到一些常见的JavaScript引擎,其中提到最多的像Go...

  • javascript作用域

    编译原理:尽管通常将JavaScript归类为“动态”或者“解释执行”语言,但是实际上,它是一门编译性语言。但与传...

  • 变量声明提升和隐式变量声明

    变量声明提升原理   引擎会在解释 JavaScript代码之前首先对其进行编译。编译阶段中的一部分工作就是找到所...

网友评论

    本文标题:JavaScript 的编译原理

    本文链接:https://www.haomeiwen.com/subject/pdccsltx.html