2015-11-04 71 views
0

考慮語言{anbmcp | n <= p OR m <= p},爲此語言創建一個CFG。
我已經開始使用S -> aA | aB,但我不確定應該如何去定義A或B.「OR」似乎很難融入到語言的定義中,因爲似乎沒有必要同時跟蹤n和m並進行比較他們反對p,但我不知道我想跟蹤哪一個爲語言生成CFG

回答

1

爲了保持這個約束,對於每個'a'你需要添加一個'c'。同樣,對於每個'b'你都應該添加'c'。

A -> aAC | aC | B

B -> bB | bC

C -> cC | c

我可能是錯在這裏。但這就是你在創建CFG時應該考慮的方法。