标识通过以下语法生成的语言,其中S是起始变量。
S --> XY
X --> aX | a
Y --> aYb | ∈
(A) {a m b n | m> = n,n> 0}
(B) {a m b n | m> = n,n> = 0}
(C) {a m b n | m> n,n> = 0}
(D) {a m b n | m> n,n> 0}答案: (C)
解释:
S --> XY
X --> aX | a // This produces only "a"
Y --> aYb | ∈ // This produces and "a" for every "b"
选项(A)和(B)错误,因为n也可以为零
由于Y中的epsilon
选项(D)是错误的,因为Y–> aYb产生相等数量的a和b。
由于有一个变量X产生至少一个a。
因此,a的数量总是大于b的数量。
这个问题的测验