为语言生成 CFG
Generating CFG for a Language
考虑语言 {a<sup>n</sup>b<sup>m</sup>c<sup>p</sup> | n <= p OR m <= p}
,为此语言创建一个 CFG。
我从 S -> aA | aB
开始,但不确定我应该如何定义 A 或 B。"OR" 似乎很难纳入语言的定义,因为似乎没有必要同时跟踪 n和 m 并将它们与 p 进行比较,但我不知道我要跟踪哪一个
为了保持该限制,您需要为每个 'a' 添加一个 'c'。同样,对于每个 'b' 你应该添加一个 'c'.
A -> aAC | aC | B
B -> bB | bC
C -> cC | c
我在这里可能是错的。但这就是您在创建 CFG 时应该考虑的问题。
考虑语言 {a<sup>n</sup>b<sup>m</sup>c<sup>p</sup> | n <= p OR m <= p}
,为此语言创建一个 CFG。
我从 S -> aA | aB
开始,但不确定我应该如何定义 A 或 B。"OR" 似乎很难纳入语言的定义,因为似乎没有必要同时跟踪 n和 m 并将它们与 p 进行比较,但我不知道我要跟踪哪一个
为了保持该限制,您需要为每个 'a' 添加一个 'c'。同样,对于每个 'b' 你应该添加一个 'c'.
A -> aAC | aC | B
B -> bB | bC
C -> cC | c
我在这里可能是错的。但这就是您在创建 CFG 时应该考虑的问题。