极快的解析,第 1 部分:优化扫描仪

为了运行 JavaScript 程序,需要处理源文本,以便 V8 可以理解它。V8 首先将源解析为抽象语法树(AST),这是一组表示程序结构的对象。这个 AST 被 Ignition 编译成字节码,这些解析加编译阶段的性能很重要:V8 在编译完成之前无法运行代码。在这一系列博客文章中,我们专注于解析,以及在 V8 中完成的工作,以提供一个超快速的解析器。

实际上,我们在解析器之前的一个阶段启动系列。 V8 的解析器消耗‘tokens’提供的‘scanner’。tokens 是具有单一语义含义的一个或多个字符的块:字符串,标识符,类似++的运算符。scanner 通过组合底层字符流中的连续字符来构造这些令牌。

上次更新: 2019/3/27 18:46:12