我的问题是:
令 L = { x in {a,b}* | x 具有相同数量的 a 和 b}
我知道这是一种上下文无关语言,因为我可以为它创建一个语法(e 是 epsilon):
S -> aX | bY | e
X -> bS | aXX
Y -> aS | bYY
您还可以通过使用与常规语言相交的上下文无关语言是上下文无关的事实来证明它是上下文无关的。
由于它是一种上下文无关语言,根据 CFL 的抽运引理,任何长于抽运长度 p 的字符串都应该能够被抽运。但是,如果我选择字符串 s = a^pb^pa^pb^p,则无法抽出该字符串,因此该语言不应该是上下文无关的。
我哪里错了?