0

考虑语言,为这种语言创建一个 CFG。 我从 开始,但不确定我应该如何定义 A 或 B。“OR”似乎很难融入语言的定义,因为似乎没有必要同时跟踪 n 和 m 并将它们与 p 进行比较,但我不知道我要跟踪哪一个 {anbmcp | n <= p OR m <= p}
S -> aA | aB

4

1 回答 1

2

为了保持该约束,您需要为每个“a”添加一个“c”。同样,对于每个“b”,您应该添加一个“c”。

A -> aAC | aC | B

B -> bB | bC

C -> cC | c

我在这里可能是错的。但这就是您在创建 CFG 时应该思考的方式。

于 2015-11-04T17:52:18.960 回答