以下哪些陈述是正确的?
I. 每个左递归文法都可以转换为右递归文法,反之亦然。全部可以通过适当的转换从任何上下文无关文法中去除产生式 III。由上下文无关文法生成的语言,其所有产生式的形式都是 X –> w 或 X –> wY(其中 w 是终结字符串,Y 是非终结符),总是规则的 IV .乔姆斯基范式中上下文无关文法生成的字符串的派生树总是二叉树
(A) I、II、III 和 IV
(B)仅限 II、III 和 IV
(C)仅 I、III 和 IV
(D)仅 I、II 和 IV答案: (C)
解释:
我是真的,因为我们总是可以从任何给定的语法中删除左递归。
(为了更好地理解,请参阅this。) II 是错误的,因为只有当语法中不包含 epsilon 时,我们才能删除所有 epsilon 产生式。 III 是正确的,因为它是正则文法的定义。
(为了更好地理解,请参阅本文中的类型 3 语言。) IV 是正确的,因为在乔姆斯基范式中,所有产生式都是 X -> YZ 或 X -> t 类型,其中 X, Y, Z 是变量, ‘t’ 是终端字符串。当我们为每个节点绘制派生树时,最多有 2 个子节点。这就是为什么乔姆斯基范式的文法派生树是二叉树的原因。
(为了更好地理解,请参阅this。)因此,C 是正确的选择。
这个问题的测验