给定任意上下文无关语法,我如何检查它是否描述了常规语言?
我不是在寻找考试“技巧”。我正在寻找一种可以编写代码的万无一失的机械测试。
如果有帮助,这里是我可能会收到的 CFG 作为输入的示例。
具体来说,请注意,答案一定比仅仅寻找左递归或右递归复杂得多,因为另一种类型的递归的存在并不自动意味着语法是不规则的。
S: A B C D X
A: A a
A:
B: b B
B:
C: c C c
C: c
D: D d D
D: d
X: x Y
X:
Y: y X
Y:
不存在这样的机械过程,因为确定CFG是否定义正则语言的问题是不可判定的。
这个结果是一个简单的应用格雷巴赫定理 https://en.wikipedia.org/wiki/Greibach%27s_theorem#Applications.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)