下面给出的两个语法在字母表 {x, y, z} 上生成一种语言
以下哪个选项描述了这些语言中字符串满足的属性?
(A) G1 : 没有 y 出现在任何 x 之前
G2 : 每个 x 后跟至少一个 y
(B) G1 : 没有 y 出现在任何 x 之前
G2 : 没有 x 出现在任何 y 之前
(C) G1 : 没有 y 出现在任何 x 之后
G2 : 每个 x 后跟至少一个 y
(D) G1 : 没有 y 出现在任何 x 之后
G2 : 每个 y 后跟至少一个 x答案:(一)
解释:对于上面的问题,我们可以看到,对于所有选项,字符串满足的属性可以定义为 x 和 y 字母之间的某种关系。
对于 Grammar 1 ,只能使用以下形式的语法产生式生成具有 x 和 y 组合的字符串。
S–>xS –>xyB 或
S–>zS–>zxS–>zxyB
(如果开始产生是 S–>x| z| yB,它不能在字符串同时给出 x 和 y)
因此,在任何具有 x 和 y 的字符串,没有 y 可以出现在 x 可以被描述为语言字符串满足的属性之前。与语法 2 类似,可以使用以下命令生成具有 x 和 y 组合的字符串
仅语法的产生形式。
S–>yS –>yxB–>yxy 或 S–>yS –>yxB–>yxyB
S–>xB –>xy 或 S–>xB –>xyB
因此,在任何具有 x 和 y 的字符串,每个 x 后面都至少有一个 y 可以被描述为语言字符串满足的属性。
该解决方案由Yashika Arora 提供。
这个问题的测验