EPAL,甚至回文的语言,被定义为以下明确的上下文无关语法生成的语言:
EPAL是许多解析算法的“祸根”:我还没有遇到任何能够解析任何描述该语言的语法的CFG解析算法。它通常用于表明存在明确的CFG,而这些CFG无法被特定的解析器解析。这激发了我的问题:
是否有一些解析算法仅接受适用于EPAL的明确CFG?
当然,可以为语法设计一个临时的两次通过语法分析器,以线性时间解析语言。我对解析不是专门为EPAL设计的方法感兴趣。
1
我几乎不敢问:递归下降法对LL(1)有什么问题?
—
拉斐尔
非回溯递归下降不能处理EPAL,因为对于任何k语言都不是LL(k)。具有回溯功能的递归下降可以在时间内处理语法,但这是一种具有指数最坏情况行为的通用算法,这不是我想要的。
—
亚历克斯十布林克
O (2 N)不是指数的,而是二次的。是指数的。
—
维克多·斯塔夫萨
@Victor:回溯在某些语法上具有指数行为,只是在此特定语法上没有。尽管如此,它还是一种适用于歧义语法的算法,但仍可作为我对问题的答案。
—
亚历克斯(Alex)10 Brink 2012年
@jmad:我的目的不是解析语言(您可以在线性时间内平凡地完成此操作),而是满足我的好奇心:我已经看到它被用作无法通过解析方法解析的语言的示例这么多次,我很好奇是否有某种解析方法可以识别它。
—
亚历克斯十布林克