我被赋予语言{w∈{a,b} * | | w | a = | w | b + 1}。我被要求找一个语法。 我想出了以下内容:
S->aSb | bSa | aAa | bBb | a
A->bS
B->?
并且想知道这是否正确,或者如果不是为什么?
答案 0 :(得分:1)
它不正确,因为它无法生成有效的句子:
baaab
还有一个a
而不是b
。很明显,这句话不能生成,因为你的语言生成的每个句子都有不同的起始和结束字符。
修改编辑后的问题也不正确,因为作品:
S -> ... | aAa | a | ...
A -> bS
相当于(通过将A
的RHS替换为S
中的用法):
S -> ... | abSa | a | ...
将匹配如下:
S -> abSa -> abaa