【问题标题】:Find out if language is context-free or not找出语言是否与上下文无关
【发布时间】:2015-09-29 12:36:48
【问题描述】:

如果我有{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>

但我不确定。任何帮助将不胜感激!

【问题讨论】:

    标签: context-free-language


    【解决方案1】:

    没有用于确定语言是否是上下文无关的算法。当然,找到一个上下文无关的语法就足够了,但没有算法可以做到这一点,所以它取决于技能、直觉和运气。

    众所周知,语言 anbncn 不是上下文无关的;您可以使用抽水引理证明这一点,并且由于它是一个常见示例,因此您可以通过 Google 轻松找到证明。

    您提出的语法不保证a、b和c的数量相等。它匹配任何由一些 a 和一些 b 和一些 c 组成的字符串。 (或者更好的说法是,如果您通过添加非递归基本案例使 A、B 和 C 产生式变得有用,它会做到这一点。)正是三向计数协议使语言不是上下文无关的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-31
    • 2014-04-24
    • 2014-11-07
    • 2012-12-18
    • 2014-08-03
    • 2015-04-25
    • 2011-03-04
    • 1970-01-01
    相关资源
    最近更新 更多