为以下语言创建 CFG

Create a CFG for the following languages

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

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

第一语言

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

我的CFG

S -> AaASAaA | c | AcA

A -> AA |乙 | c | epsilon

第二语言

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

在我的class中,我们证明了如果i=j=k,同一种语言没有CFG,这有什么不同?这甚至有CFG吗?如果确实如此,我想不出任何一种生成该语言的 cfg,我能想到的唯一一个满足 a 的数量大于或等于 b 的数量加上 c 的数量,其中顺序没关系。

你的第一种语言的 CFG 是正确的,尽管我更愿意像这样明确地写 A:

A -> epsilon | Ab | Ac

第二语言:

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

注意:是的,这是一个家庭作业问题,但我不认为在这里提供然后回答会破坏这种特殊的学习体验。见了就得了,见不到就用头撞半天也无济于事。