考虑语言 {anbmcp | n <= p OR m <= p}
,为此语言创建一个CFG
我已经用S -> aA | aB
启动了这个,但不确定我应该如何定义A或B.&#34; OR&#34;似乎很难融入语言的定义,因为它似乎没有必要跟踪n和m并将它们与p进行比较,但我不知道我想跟踪哪一个
答案 0 :(得分:1)
为了保持这种约束,对于每个'a',你需要添加'c'。同样地,对于每个'b',您应该添加'c'。
A -> aAC | aC | B
B -> bB | bC
C -> cC | c
我在这里错了。但这就是你在创建CFG时应该怎么想。