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