如果我有{a^n b^n c^n | n > 0} \sum = {a,b,c}
,我怎样才能证明它是否是无背景语言?
我看了一眼:Determine if a language is context free,但对我来说并没有多大意义。
我相信如果我这样做
<S> ::= <A><B><C>|abc
<A> ::= a<A>
<B> ::= b<B>
<C> ::= c<C>
但我不确定。任何帮助将不胜感激!
答案 0 :(得分:1)
没有用于确定语言是否无上下文的算法。当然,找到一个无上下文语法就足够了,但没有算法可以做到这一点,所以它取决于技巧,直觉和运气。
语言a n b n c n 众所周知不具备上下文无关;你可以用泵引理证明这一点,并且因为它是一个常见的例子,你可以很容易地找到一个证明谷歌。
您建议语法不保证a,b和c的数量相等。它匹配任何由一些字母组成的字符串,后跟一些b,然后是一些c&s。 (或者更好地说,如果你通过添加非递归基本情况使A,B和C产品变得有用,它会这样做。)这是三向计数协议,它使语言不具有上下文。