【编译原理】自上而下的语法分析之预测分析法

本文介绍了LL(1)文法的预测分析法,包括定义、构造First集与Follow集的详细过程,以及预测分析表的构建,并给出了相关例子。重点讨论了如何判断文法是否为LL(1)文法,以及如何进行分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习了LL(1)文法的预测分析法,这种方法不同于递归下降分析法,可直观通过栈查看语法分析过程,现总结如下.


1. 定义

第一个L表示从左到右扫描输入串,第二个L表示最左推导,1表示每步只需向前看一个符号。

LL(1)文法定义:
对于文法的任意两个不同的产生式A->α|β:
–不存在终结符号a使得α和β都可以推导出以a开头的串。
–α和β最多只有一个可以推导出空串。
–如果β可以推导出空串,那么α不能推导出以FOLLOW中任何终结符号开头的串;

定义等价于以下定理:

定理:若满足以下条件,则B N F中的文法就是LL(1)文法:

1. 在每个产生式A→a1 | a2 | . . . |an 中,对于所有的i 和j:1≤i,j≤n,i≠j,First (ai )与First (aj )交集为空。
2. 若对于每个非终结符A都有First (A) 包含了ε

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值