【问题标题】:Context-free, not-context-free, and regular grammars differentiation上下文无关、非上下文无关和常规语法区分
【发布时间】:2012-04-12 18:21:23
【问题描述】:

给定{a^(n+m) | n>= 2m},说明它是常规的、上下文无关的还是非上下文无关的,并使用 DFA、CFG、...来证明它

我的回答:它不是上下文无关的,因为没有办法表示 n>=2m。大于号太不明确了。

我想知道我的答案是否正确。

【问题讨论】:

    标签: context-free-grammar dfa


    【解决方案1】:

    您的答案**正确,因为 a^(n+m) == a^([2m+k]+m) == a^(3m+k) 其中 m , k >= 0。表示这种语言的CFG如下:

     S->LR;
     R->Ra|a;
     L->LL|aaa;
    

    【讨论】:

    • 你可以为它创建一个 CFG 的事实难道不会使 {a^(n+m) | n>= 2m} 上下文无关?
    猜你喜欢
    • 2012-12-18
    • 2015-08-13
    • 2012-01-04
    • 1970-01-01
    • 2014-04-26
    • 2013-02-23
    • 2014-02-20
    • 1970-01-01
    相关资源
    最近更新 更多