编译原理之构造预测分析表

本文详细介绍了构造LL(1)预测分析表的算法,通过具体文法G[E]的例子展示计算过程,并提供了文法Expr的分析表构造和句子id - - id((id))的分析过程,深入理解编译原理。
摘要由CSDN通过智能技术生成
构造预测分析表算法

对于文法G的每个产生式A -> α ,进行如下处理:
1. 对于FIRST(α)中的每个终结符号a,将A -> α加入到M[A , a]中。
2. 如果 ε 在FIRST(α) 中,那么对于FOLLOW(A)中的每个终结符号b,将A -> α加入到M[A , b]中。如果 ε 在FIRST(α) 中,且$在FOLLOW(A)中,也将A -> α加入到M[A , $]中。
在完成上面的操作之后,如果没有M[A , a]中没有产生式,那么将M[A , a]设置为error(我们通常采用一个空条目表示)

举个小栗子

文法G[E]:
1. E -> TE’
2. E’-> +E| ε
3. T -> FT’
4. T’-> T| ε
5. F -> PF’
6. F’ -> *F’| ε
7. P -> (E) | a | b | ∩
证明该文法是LL(1)文法

(1) FIRST集合(这里只求非终结符号的FIRST集合)

FIRST(E) = { ( , a , b , ∩ }
FIRST(T) = { ( , a , b , ∩ }
FIRST(F) = { ( , a , b , ∩ };
FIRST(P) = { ( , a , b , ∩ };
FIRST(E’) = { + , ε };
FIRST(T’) = { ( , a , b , ∩ , ε };
FIRST(F’) = { * , ε };

(2) FOLLOW集合</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值