赞
踩
那么如何利用这四种类型设置好简单语言的文法是值得考虑的事情。
首先一个例题看看:
分析: 首先明白证明两个集合相等是需要双向证明的。L是上述生成式生成的语言的集合,而等号右边是一般形式的生成句子的集合。
同理,再证L(G)->L的关系。
从S开始只能用①和②得到含a,B,C的字符串,且字符串中这3个字母的个数相同。而b和c分别只能用B和C换取,因此L(G)的字符串中a,b,c的个数相同。又a始终出现在其他符号的左边,B只有紧挨在a或b的右边时才能被替换成b,C只有紧挨在b或c的右边时才能被替换成c,因此b必在a的右边,又必在b的右边,得证L(G)->CL。
S->aaaS|a
或者最后举一个作业里面的典型习题
找出右线性文法,能构成具有奇数个a和奇数个b组成的字符串。
分析: 当时做这个题的时候,我们会思考如何保证一定是奇数个呢?按照常规思路来说,在1个的基础上每次增加的时候都增加两个或者进行两次增加同一类型元素的操作,那么就一定能保证结果是奇数个。
那么先确定最开始的字符要么是a要么是b,那么
所以综合来看的结果是
示意图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。