1.编译原理

    1.分词/词法分析

      这些代码块被称为词法单元(token)。例如,var a = 2;。这段程序通常会被分解成为下面这些词法单元:var、a、=、2 、;

    2.解析/语法分析

      这个过程是将词法单元流(数组)转换成一个由元素逐级嵌套所组成的代表了程序语法结构的树。这个树被称为“抽象语法树”(Abstract Syntax Tree,AST)     

<script>
         variabledeclaration

    identifier = a      assignmentExpession
         
                                        numricliteral  =2
</script>

    3.代码生成

      将AST转换为可执行代码的过程称被称为代码生成 。

3.编译原理的重要角色

  引擎
    从头到尾负责整个JavaScript程序的编译及执行过程。
  编译器
    引擎的好朋友之一,负责语法分析及代码生成等脏活累活。
  作用域
    引擎的另一位好朋友,负责收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套非常严格的规则,确定当前执行的代码对这些标识符的访问权限

4.RHS和LHS查询

  如果查找的目的是对变量进行赋值,那么就会使用LHS查询;如果目的是获取变量的值,就会使用RHS查询

5.错误类型

  ReferenceError同作用域判别失败相关,而TypeError则代表作用域判别成功了,但是对结果的操作是非法或不合理的。

 

相关文章:

  • 2022-12-23
  • 2021-05-19
  • 2021-05-23
  • 2021-09-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-08
  • 2021-09-08
猜你喜欢
  • 2021-11-30
  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
  • 2021-09-19
  • 2021-05-23
  • 2022-12-23
相关资源
相似解决方案