为以下语言创建CFG



我只是想知道我的CFG对于第一种语言是否正确。

以下语言是字母表{a,b,c}

第一语言

{xcy|x和y是具有相同数量a的字符串}

我的CFG

S->AaASAA|c|AcA

A->AA|b|c|epsilon

第二语言

{a^ib^jc^k|i>=j+k}

在我的课上,我们证明了同一种语言没有CFG,如果i=j=k,这有什么不同?这甚至有CFG吗?如果是这样的话,我想不出任何一种cfg能产生这种语言,我能想到的唯一一种就是满足a的数量大于或等于b的数量加上c的数量,其中顺序无关紧要。

第一种语言的CFG是正确的,尽管我更喜欢像这样毫不含糊地写A:

A -> epsilon | Ab | Ac

第二语言:

S -> M | aS
M -> N | aMc
N -> epsilon | aNb

注意:是的,这是一个家庭作业问题,但我不认为在这里提供答案会破坏这种特殊的学习体验。一旦你看到它,你就会明白,如果你没有明白,你可以用头撞它很长一段时间,却一无所获。

最新更新