编译原理---文法的判断

在进行文法判断之前,我们先来了解一下文法定义。

文法G定义一个四元式

G=(VT,VN,S,P) 其中,VT为终结符的非空有限集合,VN为非终结符的非空有限集,S为文法的开始符,S属于VN,P为产生式的非空有限集合。

注:在编译原理当中,小写字母一般代表终结符,大写字符一般代表非终结符。

看了上面的文法的定义,是不是有点懵?那么小编就给大家举个例子吧。

 看了上述,相信大家对文法的概念有了一定的了解,下面我来试试文法几型是怎么判断的吧!

首先,文法分成4类,0型,1型,2型,3型。0型强于1型,1型强于2型,2型强于3型。

(1)3型文法判断,左边只有一个终结符,右边最多包含两个字符(形如A→aorA→aB)

1.当右边只有一个字符的时候,该字符必定是终结符(一般是小写)。

2.当右边有两个字符的时候,该字符的必定包含一个非终结符(一般大写字母)和一个终结符(一般小写字母)。

注:如果右边是两个字符的话,右边的两个字符的相对位置是固定的,也就是,如果其中一个产生式终结符+非终结符,那么,右边只要是两个字符的,一定是终结符+非终结符的形式。

(2)2型文法判断(上下文无关语言),左边只有一个字符,右边字符没有限定,有限个即可。

(3)1型文法判断(上下文有关语言),左边至少包括一个非终结符,右边字符没有限定,有限个即可。同时,右边串的长度必须大于等于左边串的长度。

(4)0型文法(短语文法) 先判断上面的,如果都不是,那就是0型文法。

注:判断文法,要先从3型文法开始,然后2型,以此类推到0型。如果判断是3型文法,那肯定也是2型1型0型。如果判断是2型文法,那肯定不是3型文法,肯定包括1型和0型。

                                  看了上面这么多文字,我们来做道题热热身趴!

(大写字母是非终结符,小写终结符)

 分析:

1.首先先分析是不是3型文法,左边只有一个终结符,右边最多包含两个字符。比如Bb→bB,左边就有两个字符了,显然是不满足条件的。

2.然后再分析是不是2型文法,左边只有一个字符,右边字符没有限定。比如Bb→bB,左边就有两个字符了,显然是不满足条件的。

3.然后再分析是不是1型文法,左边至少包括一个非终结符,右边字符没有限定,有限个即可。同时,右边串的长度必须大于等于左边串的长度。显然是满足条件的。0型文法就不用判断啦,是1型文法的话,那肯定也是0型文法。

以上,是1型文法。

创作不易,给小编点个关注趴!!

 

 

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值