首页
学习
活动
专区
圈层
工具
发布

构造CFG
EN

Stack Overflow用户
提问于 2014-03-07 19:41:44
回答 1查看 232关注 0票数 0

我真的找不到答案:

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

V-> aV _ bV _e

W-> bW _ cW _e

但我想不出如何把v和w这两个词的结构相互结合起来,并牢记这一限制。有谁能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-08 18:57:30

正如我在“答案”tips for writing cfg中所解释的,正确的方法是首先理解语言中所有可能的字符串模式,然后编写规则。

这个L语言是什么?在L语言串中:

1. All 'a's先于任何'c'

2.'a'小于或等于'c'数,因此在L的语法中,如果产生规则添加了一个符号'a',那么它还必须添加一个或多个'c'

3.对符号'b'的出现没有限制,它可以在任何地方出现任意次数。4.空(null)字符串也属于L,如果'c'== 0,则为'a' = number的编号。出于同样的原因,只有符号'b'组成的字符串也是可以接受的。

5.任何没有'a'的字符串也属于L(换句话说,(c + b)*是L的子集)。

现在编写语法规则很容易(阅读注释可以理解每个生产规则):

代码语言:javascript
复制
S →  BaBSBCB | ^    // add `a` add `C` also, B can be any where so added B   
Z →  CZ | BZ | ^    // to create `(c + b)*`
C →  cC | c         // C always generates one or more `c`s  
B →  bB | ^         // there is no restriction on B it generates `b`s or ^ 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22259228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档