给定语言的语法

时间:2014-11-26 18:51:42

标签: grammar

我被赋予语言{w∈{a,b} * | | w | a = | w | b + 1}。我被要求找一个语法。 我想出了以下内容:

    S->aSb | bSa | aAa | bBb | a
    A->bS
    B->?

并且想知道这是否正确,或者如果不是为什么?

1 个答案:

答案 0 :(得分:1)

它不正确,因为它无法生成有效的句子:

baaab

还有一个a而不是b。很明显,这句话不能生成,因为你的语言生成的每个句子都有不同的起始和结束字符。

修改编辑后的问题也不正确,因为作品:

S -> ... | aAa | a | ...
A -> bS

相当于(通过将A的RHS替换为S中的用法):

S -> ... | abSa | a | ...

将匹配如下:

S -> abSa -> abaa