以下哪一项陈述是错误的?
(A)存在上下文无关语言,使得生成它们的所有上下文无关文法都是二义性的
(B)一个明确的上下文无关文法对于它生成的语言的每个字符串总是有一个唯一的解析树。
(C)确定性和非确定性下推自动机总是接受相同的语言集
(D)来自一个字母表的有限字符串集始终是常规语言。答案: (C)
解释:
A) 对于现实世界的编程语言,由于诸如悬空 else 问题之类的问题,参考 CFG 通常是模棱两可的。 //维基百科
B) 如果一个字符串有两个不同的解析树,那么这个字符串就是二义性的;如果一个字符串有两个不同的解析树,那么这个语法就是无歧义的。
C) 确定性下推自动机可以识别所有确定性上下文无关语言,而非确定性自动机可以识别所有上下文无关语言
因此它是错误的
D) 正则语言的特性:
- 字母表上的一组常规语言在操作 union、concatenation 和 Kleene star 下关闭。
- 有限语言是规则的
所以答案是C
这个问题的测验