JS淬炼: Syntax Parser

一门语言的执行,大致经历下面这些过程:词法分析 -- 语法分析 -- 语义分析 -- 中间代码生成 -- 优化代码 -- 代码生成。

在Javascript中,Syntax Parser的作用是进行词法分析语法分析

A program that reads your code and determines what it does and if its grammar is valid.

词法分析挨个字符地扫描代码,把关键token识别出来。语法分析利用词法分析的结果建立上下文关系语法树 Abstract Syntax Tree (AST)。一般情况下,我们不会直接和语法树打交道,但会在进行Uglify代码压缩、IDE语法高亮、Babel重编译、关键字匹配和作用域判断时间接涉及到。

var AST = "is Tree";
JS淬炼: Syntax Parser_第1张图片

传统的Javascript引擎直接根据语法树的的结果进行解释执行,导致效率比C/C++较为低下。一些最新的Javascript引擎(如V8),会将部分Javascript代码编译成为目标代码以提高执行效率。

介绍几个Javascript的Syntax Parser

  • esprima
  • acorn

Reference

  • javascript-ast-tutorial
  • javascript-syntax-tree

你可能感兴趣的:(JS淬炼: Syntax Parser)