创建具有某些条件的简单上下文无关语法的问题

problem creating an easy context free grammar that has some conditions

我需要 CF 语法方面的帮助,它必须生成以下内容:

{an c bm | m>=n>=0}

这是我得出的结论:

S<sub>0</sub>->aAb | aSb

S<sub>1</sub>->Acb | ε

但它不正确,因为它不遵守条件 m>=n>=0 而且它创建了许多 c,而我只需要一个。

从像 {a^n c b^n | n >= 0} 这样的语言开始,它将有一个规则,每个 b 消耗一个 a,反之亦然:

S -> A | ε
A -> aAb | c

然后利用这样一个事实,即 m >= n 的另一种说法是 m = n + k | k >= 0。所以你可以将你的语言表达为{a^n c b^n b^k | n >= 0, k >= 0},我将把它作为练习留给你如何构造。