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重编译、关键字匹配和作用域判断时候涉及到。

1
var AST = "is Tree";

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

介绍几个Javascript的Syntax Parser

Reference