是否可以使用现有的Marpa解析器来改进Perl5的解析(例如,替换现有Perl解释器的解析器的全部或部分)?
我是在理论层面上问,例如忽略实际的考虑,例如“如果可以的话,会耗费1万工时”。
如果没有,有哪些具体的问题阻碍了Marpa的使用?(同样,最好是理论上的)。
对于为什么这很有趣的背景,Jeffrey Kegler ( Marpa的作者)在2008年在PerlMonks上发布了一篇比较著名的文章"Perl Cannot Be Parsed: A Formal Proof",这篇文章受到了他当时关于Marpa的工作的影响。
发布于 2013-05-08 09:52:49
谢谢你的关心。perlmonks的帖子和我目前的解析工作解决了两个不同的相关问题。问题1: Perl解析,完全通用,是否可以由图灵机决定?问题2:作为一个实际问题,Marpa能否解析Perl 5?
您可能会比较这两个问题:“每个C程序的行为都是可决定的吗?”和“machine X可以运行用C编译的程序吗?”答案分别是“否”和“对所有实际目的和对X的合理选择是肯定的”。因此,我的perlmonks帖子(更新后的here)是关于Perl程序的语法是否在完全通用的情况下是可决定的理论问题。请注意,Perl解析在该上下文中的可判断性与Marpa、递归下降、野牛等无关--它是关于图灵机的。
问题2是“Marpa能驱动实用的Perl5解析器吗?”当前的Perl5解析器是LALR,它有一个单独的词法分析器和许多过程辅助。Marpa比LALR更强大,允许单独的词法分析器,并且比LALR为过程代码提供了更多的帮助。我在a recent blog post中解决了速度问题:“Earley解析速度够快吗?”我刚才所说的非常简单--但我希望它能概述我如何证明我对问题2的回答是肯定的。
Marpa驱动的Perl5解析器没有深层次的体系结构问题。在这一点上,这实际上是一个舒适度的问题。
https://stackoverflow.com/questions/16427628
复制相似问题