编译原理 LL(1)

  LL(1)概念

 改造文法

First集

理论

First集:一个文法符号串所可能推导出的符号串的第一个终结符的集合

符号串ABC…,并且A不能推导出空串ε,显然根据定义First(ABC…)=First(A)

符号串ABC…,并且A可能推导出空串ε,当A不是空串的时候,显然First(A)属于First(ABC…),但当A是空串的时候,ABC…就成了BC…,此时根据B是否能推出空串来决定是否将First(B)加入First (ABC…)。这是一个递归的推导,综上所述,符号串中的第一个不能推出空串的符 号前面所有符号的First集合减去空串ε都属于First(ABC…),第一个不能推出空串的 符号的First集合也属于First(ABC…)。

注意:First集合中的符号一定是终结符,终结符也包括空串ε。

做题

假设A、B都可以推出空串,C不能推出空串,

则有First(ABC…)=First(A)-ε∪First(B)-ε∪First(C)。

Follow集

理论

Follow集:文法符号后面可能跟随的终结符的集合(不包括空串ε)

终结符的Follow集合没有定义,只有非终结符才会有Follow集合。

做题

求Follow(B)就看-->右边含有B的式子就可以了

具体题目

构造LL(1)分析表

(1)对每个终结符a∈FIRST(a),将A->a加到M[A,a]中。
(2)如果ε∈FIRST(a),则对于任何b∈FOLLOW(A),将A->a加到M[A,b]中。

分析过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值