考虑以下字母表 ∑ = {a, b, c} 上的上下文无关文法,其中 S 作为起始符号:
S → abScT | abcT
T → bT | b
以下哪一项代表上述语法生成的语言?
(A) {(ab) n (cb) n | n >= 1 }
(B) {(ab n cb m 1 cb m 2 …cb m n | n, m 1 , m 2 , ….., m n >= 1 }
(C) {(ab) n (cb m ) n | n >= 1 }
(D) {(ab) n (cb n ) m |米,n >= 1 }答案:(乙)
说明:让我们从给定的语法生成一个字符串:
S → 抽象
→ 抽象的 cT
→ abab abcT cTcT
→ abababc bT cTcT
→ abababcb bT cTcT
→ abababcbb bT cTcT
→ abababcbbbb cTcT
→ abababcbbbbc b cT
→ abababcbbbbcbc bT
→ abababcbbbbcbcbb
这个字符串可以排除所有错误的选项。现在让我们尝试分析这个字符串。
→ abababcbbbbcbcbb
→ {(ab n cb m 1 cb m 2 …cb m n | n, m 1 , m 2 , ….., m n >= 1 }
借助给定语法生成的字符串,我们可以清楚地排除选项(A)、(C)和(D)。
只有选项(B)是正确的。
这个问题的测验