解析器语法引擎

编辑
本词条由“匿名用户” 建档。
解析器语法引擎(PGE,最初为Parrot语法引擎)是Parrot虚拟机的Raku规则的编译器和运行时。PGE使用这些规则将解析表达式语法转换成Parrot字节码。 因此,它是将规则编译成程序,而不像大多数虚拟机和运行时那样,将正则表达式存储在一个二级内部格式中,然后在运行时由正则表达式引擎解释。 PGE使用的规则格式可以表达任何正则表达式和大多数形式语法,因此它构成了Parrot...
目录

简介

编辑

解析器语法引擎(PGE,最初为Parrot语法引擎)是Parrot虚拟机的Raku规则的编译器和运行时。PGE使用这些规则将解析表达式语法转换成Parrot字节码。

因此,它是将规则编译成程序,而不像大多数虚拟机和运行时那样,将正则表达式存储在一个二级内部格式中,然后在运行时由正则表达式引擎解释。

PGE使用的规则格式可以表达任何正则表达式和大多数形式语法,因此它构成了Parrot所有前端语言的编译链中的第 一个环节。当执行时,PGE产生的字节码将按照输入规则的描述来解析文本,产生一个解析

解析树可以直接操作,也可以输入到派诺特编译器工具链的下一阶段,以便生成AST,并从中生成代码(如果语法描述了一种编程语言)。

历史PGE最初被命名为P6GE,用C语言编写,在2004年11月首次发布后不久就被翻译成原生的Parrot并重新命名。它的作者是PatrickR.Michaud。编写PGE的目的是为了减少在Parrot之上实现一个编译器所需的工作量。

虽然目前Pugs的开发不再使用PGE作为其主要的规则后端,而是使用一个叫做PCR的本地引擎,但它也是为了让Perl6能够轻松地自我托管。

PGE内部结合了三种解析方式。主要形式是Raku规则,所以PGE的规则对于一个纯加法语法来说可能是这样的。

代码生成

编辑

尽管PGE输出的代码将解析规则所描述的语法,并可在运行时用于处理代码中发现的简单语法和正则表达式,但其主要目的是解析高级语言。

Parrot编译器工具链分为几个部分,其中PGE是xxx个部分。PGE将源代码转换为解析树。然后,树语法引擎(TGE)将这些转换为帕罗特抽象语法树(PAST)。第二个TGE通道将PAST转换为帕罗特操作码语法树(POST),可直接转换为可执行字节码。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/164024/

(3)
词条目录
  1. 简介
  2. 代码生成

轻触这里

关闭目录

目录