所以,我有这种语言L={a^i b^2j+1 / i<>j}
,我必须基于它生成一个无上下文语法,你能不能帮我说明这样做的步骤。
到目前为止,我有这个:
S-->aS/aBbb
B-->bB/b/e(empty)
但我不确定它是否正确,请帮助我理解。
答案 0 :(得分:2)
对于&#34;不等于&#34;的语言限制,最简单的方法通常是首先找到与语言相对应的语法,使用&#34;等于&#34;改为限制,然后将其更改为需要更多其中一项。
在这种情况下,我们有许多a
个令牌,后跟奇数个b
令牌,其中约束是每个令牌的数量。对于相同的情况,那就变成了
S→aSbb | B'/ P>
一个b
a
个b
s和a
对包围着它。
为了使它不相等,我们需要添加额外的B
s或额外的{{1}}对,但不能同时添加两者:
S→AS&#39; | S&#39;乙
S&#39; →aS&#39; bb | b
A→Aa |一个
B→Bbb | BB