FIRST 和 FOLLOW求解

(一)FIRST集合

概念:FIRST(α)定义为可以从α推导得到的串的首符号的串的集合。换言之,就是由非终结符推出的所有的开头符号(终结符)或者是ε,即如果α=*=>ε,那么ε也在FIRST(α)中.

1.FIRST的计算方法

  1. 计算单个文法符号X的FIRST(X)时,不断应用以下规则,直到没有新的终结符或者是ε加入。
    (1)如果X是终结符号,那么FIRST(X)={X}
    (2)如果X是非终结符号,且X->ε是一个产生式,那么ε在FIRST(X)中。
    (3)如果X是非终结符号,且X->Y1Y2…Yk是产生式
    —如果ε在FIRST(Y1), FIRST(Y2),…, FIRST(Y i-1)中,那么FIRST(Yi)中的非ε元素,也在FIRST(X)中。
    —如果ε在FIRST(Y1), FIRST(Y2),…, FIRST(Yk)中,那么ε在FIRST(X)中。(PS:注意这里是k,也就是说要所有都推出 ε 才能说明 ε 在FIRST(X))

理解(3)中的两条规则,第一条如果ε在FIRST(Y1), FIRST(Y2),…, FIRST(Y i-1)中,那么我们根据规则(1)可以知道Y1->ε,Y1->ε…Y(i-1)->ε,所以X->

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值