编译原理学习笔记12——语法分析|自下而上分析3

12.1 活前缀

LR分析法
工作框架
在这里插入图片描述
规范规约
在这里插入图片描述
LR分析法

在这里插入图片描述
在这里插入图片描述
答案:D
在这里插入图片描述

字的 前缀、活前缀

在这里插入图片描述

识别活前缀
在这里插入图片描述

12.2 构造识别活前缀的DFA

文法的拓广
在这里插入图片描述

LR(0)项目

在这里插入图片描述
示例:LR(0)项目
在这里插入图片描述

构造识别文法所有活前缀的DFA

构造识别文法所有活前缀的DFA
在这里插入图片描述

识别活前缀的NFA
在这里插入图片描述

在这里插入图片描述

LR(0)项目集规范族
在这里插入图片描述

通过计算项目集规范族构造识别活前缀的DFA

有效项目
在这里插入图片描述

有效项目的性质
在这里插入图片描述
在这里插入图片描述

LR(0)项目集规范族的构造
在这里插入图片描述

项目集的闭包CLOSURE

在这里插入图片描述
在这里插入图片描述

状态转换函数
在这里插入图片描述
在这里插入图片描述

示例:项目集的转移函数计算

在这里插入图片描述

LR(0)项目集规范族的构造算法

在这里插入图片描述
在这里插入图片描述

12.3 构造LR(0)分析表

LR(0)分析表的构造
在这里插入图片描述

构造LR(0)分析表的算法

在这里插入图片描述

LR(0)分析表的ACTION和GOTO子表构造
在这里插入图片描述

示例:LR(0)分析表的构造
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LR(0)分析示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结

  • 规范归约过程中,只要保证分析栈中总是活前 缀,就说明分析采取的移进/归约动作是正确的
  • 哪些字符串是活前缀?能不能构造一个DFA来识 别活前缀?
    • 项目 ->NFA ->DFA
    • Closure->GO->DFA
  • 将识别活前缀的DFA转换成LR分析表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值