我可以将任何语法转换为运算符优先级语法吗?

时间:2010-11-12 14:22:11

标签: compiler-construction

我可以通过运算符优先级解析来实现任何语法吗?

2 个答案:

答案 0 :(得分:2)

如果您在询问是否可以通过语法更改语言的运算符优先级,那么答案是:是的,当然。

如果你问是否可以使用Pratt的自顶向下运算符解析方法解析“典型的”无上下文语法,那么答案就是否定。 但是你可以将两者结合起来。一篇很好的文章介绍Pratt解析,它应该为你提供一些关于将它应用于递归下降解析器的信息:http://effbot.org/zone/simple-top-down-parsing.htm

答案 1 :(得分:1)

这是一个很好的问题,答案是:是的。它看起来像 霍普克罗夫特公司第四章中的一个双重问题(#4.21)乌尔曼 关于可计算性和形式语言的文本。答案(总结证明 还提供了建设)。 非常简单地说,它假定转换为减少GNF,从最终 执行构造以移除相邻的非终端。不是最多的 高效的施工,但它的工作原理(如果你可以遵循类似的处理 之前转换为CNF和GNF)。 希望这有帮助!

相关问题