我需要创建一个无上下文语法,它将生成{a,b}上的字符串,其长度不可被3整除。我真的不知道从哪里开始。如果有人可以提供一个类似的例子或一个非常感激的起点。
答案 0 :(得分:2)
好的,让我们先做一些头脑风暴。
肯定有更直接的解决方案(假设生成可以被3整除的句子形式,然后再添加1或2个字符),但是这可以让你对这些东西的所有内容有所了解。连接。
希望这至少能回答你的问题。请随时询问更多详细信息。
编辑: 我还添加了生成这种语言的常规语法(初始非终结符为0):
0 -> a1 | b1 | a | b
1 -> a2 | b2 | a | b
2 -> a0 | b0
Basicaly语法所做的是试图将字长整除3,但每当它应该添加第三个字符时,它就不允许你终止生成。