构建CFG

时间:2014-03-07 19:41:44

标签: context-free-grammar context-free-language

我真的无法找到答案:

L = {vw | v元素{a,b),w元素{b,c} ,a' s< = c' s}

V - > aV | bV | ë

W - > bW | cW | ë

但是我想不出如何将v和w之间的结构相互结合并牢记所提到的限制......任何可以借给我一个人的人?

1 个答案:

答案 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)*