编译原理(四)自顶向下语法分析方法、LL(1)文法的判别、非LL(1)文法转换为LL(1)文法

本文深入探讨了LL(1)文法的概念及其在自顶向下分析中的应用,详细介绍了LL(1)文法的判别方法,包括求解能推出ε的非终结符、计算FIRST/FOLLOW/SELECT集,以及如何通过提取左公共因子和消除左递归来将非LL(1)文法转换为LL(1)文法。此外,还讲解了确定的自顶向下分析方法,如递归子程序法和预测分析法。

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

本文要点
  1. 理解 “能使用自顶向下分析技术的文法必须是LL(1)文法
  2. LL(1)文法的充要条件
  3. LL(1)文法的判别
  4. 某些 非LL(1)文法LL(1)文法 的等价变换
    1.提取左公共因子
    2.消除左递归(直接左递归、间接左递归)
  5. 不确定的自顶向下分析思想
  6. 确定的自顶向下分析方法
    1.递归子程序法
    2.预测分析法[判别LL(1)文法;构造预测分析表;分析输入串]
    在这里插入图片描述

4.1 确定的自顶向下分析思想

主要思想:
从文法的开始符号出发,如何根据当前的单词符号
唯一地确定选用哪个产生式来替换相应的VN向下推导。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值