解析表达式文法中的左递归
摘要:用于解析表达式语法(PEGs)是一种形式化工具,可以通过一组规则来描述所有确定性上下文无关语言,该规则指定了某种语言的自上而下解析器。PEGs易于使用,并且在几种编程语言中都有高效的PEG库实现。 PEGs中常常缺乏的一个特性是左递归,而左递归在上下文无关语法(CFGs)中通常用于编码左结合操作。我们提出了对PEGs语义的简单保守扩展,为直接和间接左递归规则提供有用的含义,并且证明了我们的扩展使得在PEGs中表达CFGs中的左递归成为容易且具有类似的结果。我们证明了这些扩展的保守性,并且还证明了它们适用于任何具有左递归的PEG。 PEGs还可以编译成低级解析机器中的程序。我们对该解析机器的操作语义提出了扩展,使其能够解析左递归PEGs,并证明了这个扩展相对于我们对左递归PEGs的语义是正确的。
作者:S''ergio Medeiros, Fabio Mascarenhas and Roberto Ierusalimschy
论文ID:1207.0443
分类:Formal Languages and Automata Theory
分类简称:cs.FL
提交时间:2014-02-17