平衡括号的上下文无关语法

yog*_*agr 5 context-free-grammar computation-theory

我想为以下语言设计一个上下文无关语法:

L = { 我们 {(, )}* | w 是平衡的}

我提出了以下语法:

S -> (S)S | 乙

而讲座中提出的解决方案是:

S->(S)| SS | 乙

我无法弄清楚我的解决方案可能存在什么问题。我针对各种情况运行了语法,例如:

(()()), ()()(), 和 (())()

并且 CFG 都接受这些字符串。

有人可以帮忙吗,我的 CFG 不涵盖哪些情况。或者说它们都是等价的。或者达到最终状态所需的转换次数不同。

ric*_*ici 4

两种语法生成相同的语言,因此都没有错误。

我更喜欢你的,因为它很明确,但这不是要求的一部分。许多人似乎发现另一个答案更容易理解,但这也不符合要求,而且这是一个高度主观的标准。