Questions tagged «parsing»

5
从Earley解析器恢复解析森林?
我最近在阅读Earley解析器,并认为它是迄今为止我见过的最优雅的算法之一。但是,从传统意义上讲,该算法是识别器,而不是解析器,这意味着它可以检测字符串是否与特定的CFG匹配,但不会为其生成解析树。我的问题是如何不恢复解析树,而是恢复给定输入字符串的所有可能解析的解析林。 在Grune和Jacob的“解析技术:实用指南”中,他们说明了可用于从Earley识别器的结果中恢复解析森林的算法,但是该算法基于Unger的解析方法,其运行时间为O(n k + 1),其中k是语法中最长产生式的长度。这意味着运行时不是语法大小的多项式。此外,Earley关于该算法的原始论文提出了一种用于恢复解析森林的算法,该建议是不正确的(例如,参见Tomita的本文的第762页),尽管许多消息来源仍将其作为恢复解析森林的适当方法。 。 我的问题是,是否可以在多项式时间内为给定的输入字符串恢复一个解析森林。我在这里找到了一篇论文,该论文提供了一种使用PDA模拟为任何解析生成立方大小的解析森林表示形式的算法,因此这似乎应该可行,但是我还没有找到任何方法来做到这一点。理想情况下,我希望不将输入语法转换为CNF(确实可以解决问题),因为生成的解析林将非常混乱。 谢谢你尽你所能的帮助!

1
是否可以在线性时间内解析所有明确的语法?
当修改非规范的LR解析时,我想到了一种解析方法(具有无限大的表,这使其不切实际)能够在时间内准确解析明确的语法,我想知道是否有可能做得更好:Ø (ñ2)Ø(ñ2)O(n^2) 是否可以在线性时间内解析所有明确的语法? 我很确定我读过某个地方的情况,但是在搜索互联网时并没有出现这种情况。在这里提出了相同的问题,但据我所知没有给出任何答案。

3
使用
有多种算法可以在时间内解析上下文无关的语法。使用矩阵乘法,甚至可以渐近地进行。Ø (ñ3)Ø(ñ3)O(n^3) 但是,我知道的所有解析任意CFG的算法都具有的最坏情况的空间使用量(尽管,诚然,我不知道该矩阵乘法算法的空间使用量是多少)。我想知道是否有任何算法可以改善这种空间使用情况(因此不考虑时间限制)。Ω (n2)Ω(ñ2)\Omega(n^2) 在将与我所知道的所有CFG解析算法上绑定的空间联系起来后,这个问题突然在脑海。这可能没有实际意义,而只是我想了解的东西。C小号G = ND SP一 çË(Ñ )⊆ d 小号P一 çË(n2)C小号G=ñd小号P一种CË(ñ)⊆d小号P一种CË(ñ2)CSG = NDSPACE(n) \subseteq DSPACE(n^2)Ω (n2)Ω(ñ2)\Omega(n^2)

3
Brzozowski正则表达式对语法的导数方法的推广?
Brzozowski的导数方法是一种非常漂亮的技术,可以以很好的代数方式从正则表达式构建确定性自动机。我已经对该技术进行了一些可爱的概括,以处理更大的语法类别,但是这些算法非常简单明了,因此很可能以前就已经发现了它们。但是,谷歌搜索对该技术的后代的引用似乎并不多。有人知道吗?

2
带有LR解析的置换短语
排列短语是对标准(E)BNF上下文无关语法定义的扩展:排列短语包含n个生成词(或等效地,非末尾词)A 1至A n。在置换词组的位置,我们希望只看到一次所有这些产生式,但是我们对这些非末端的顺序不感兴趣。{ 一1个,… ,Añ}{一种1个,…,一种ñ}\{ A_1, \dots, A_n \}ññn一种1个一种1个A_1一种ñ一种ñA_n 例如: S <- X { A, B, C } Y 等效于: S <- X A B C Y S <- X A C B Y S <- X B A C Y S <- X B C A Y S <- …

2
用于更新解析树的高效算法
假设我有很多代码已经被字典化和解析了。 假设只有一个字符发生变化;我想更新我的解析,但是由于与整个事物相比修改很小,我想知道是否有可能不再次解析整个事物,但是是否有算法来确定重新解析的范围,并妥善处理移动的令牌边界。 提前致谢!


1
移位减少解析与定界连续之间的关系?
是否有人正式定义了移位减少解析技术和定界连续符之间的关系? 在构造一个自下而上的解析器(例如LR解析器)时,我们采用一种语法,然后将解析状态表示为一组项:形式的增产,其中α和β是末端和非末端的序列。标记∙表示解析器进入字符串的距离,其中α表示到目前为止已看到的内容,而β表示对可能要解析的内容的预测。A→α∙βA→α∙βA \to \alpha \bullet \betaαα\alphaββ\beta∙∙\bulletαα\alphaββ\beta 在LR语法分析自动机的转变的移位动作匹配靠在堆叠的前缀,并将其替换为甲。对堆栈的这种深层操作类似于控制操作员的效果,但这只是定性观察。αα\alphaAAA 有没有人研究过移位减少解析与定界控制运算符(例如移位/重置)之间的联系?

1
为什么富田创建了GLR而没有使用Earley?
当我查看Earley解析时,它看起来非常优雅,我想知道为什么GLR技术变得流行?有谁知道Tomita创建了GLR的Earley解析出了什么问题?性能?高度赞赏有关这些讨论的任何出版物。
11 parsing 

4
关于解析器理论的好书?
我的Java项目之一是parboiled的分支,并且与Antlr或JavaCC不同,解析器是在运行时生成的。生成的语法是解析表达式语法或PEG(我听说它们的另一个术语是“ packrat”)。 尽管运行时生成增加了复杂性(涉及字节码生成),但另一方面涉及解析器理论本身。不幸的是,由于我没有计算机科学的扎实背景,因此我缺乏将现有代码映射到现有概念的理论知识-在这种情况下为解析器。 有没有我可以购买和阅读的很好的解析器参考书,或者甚至可以链接到Internet上的链接,这可以帮助我建立起这样的“映射”,这是我的理论知识不足的原因?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.