我真的无法找到答案:
L = {vw | v元素{a,b),w元素{b,c} ,a' s< = c' s}
V - > aV | bV | ë
W - > bW | cW | ë
但是我想不出如何将v和w之间的结构相互结合并牢记所提到的限制......任何可以借给我一个人的人?
答案 0 :(得分:0)
正如我在答案tips for writing cfg中所解释的那样,正确的方法是首先理解语言中所有可能的字符串模式然后编写规则。
这种语言是什么?在L语言的字符串中:
1。所有'a'
都在'c'
之前
2。 'a'
的数量小于或等于'c'
的数量,因此在L的语法中,如果生产规则添加一个符号'a'
,那么还必须添加一个或多个'c'
3. 对符号'b'
的出现没有任何限制,它可以在任何地方出现。
4. 如果'a'
== 0,则空(null)字符串也属于L,'c'
=数字。由于同样的原因,字符串仅包含符号{ {1}}也可以接受
5. 任何没有'b'
的字符串也属于L(换句话说,'a'
是L的子集)。
现在编写语法规则很简单(阅读注释以了解每个生产规则):
(c + b)*