为什么富田创建了GLR而没有使用Earley?


11

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


5
GLR允许对语法的某些部分进行确定性分析。例如,参见Elkhound(scottmcpeak.com/elkhound),其中包含了这个想法。但是对于自然语言,还不清楚GLR是否比Earley好。
西尔万2015年

1
@Sylvain:听起来像是对我的答案……
Joshua Grochow 2015年

Answers:


5

迟到总比不到好。

如果我理解正确,Earley是自上而下的,将花费时间和内存为给定S(i)的每个产品创建Earley项目。这意味着对于自然语言,在S(0)中,我们创建并检查Earley项目中是否存在每个可能开头一个句子的单词,并且其中很多。

但是GLR是自下而上的,因此,假设有效地对表/状态进行哈希查找,则第一个令牌将在恒定时间内选择下一个过渡。

尤其是对于自然语言而言,这是正确的,它具有大量不同的作品。但是对于只有极少量产品的编程语言来说并没有真正意义。

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.