编译原理笔记


在这里插入图片描述

构造文法

在这里插入图片描述
参考文档 https://www.doc88.com/p-9436653550668.html
在这里插入图片描述

自顶向下、自底向上、子树、直接子树

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

在这里插入图片描述

二义性文法、非二义性文法

在这里插入图片描述

短语、直接短语、句柄

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

直接短语和句柄的结果 以下图为准。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在这里插入图片描述

综上结果为:
短语         PT*F(T*F)P(T*F)T*P(T*F)
直接短语 	PT*F
句柄	        P

化简文法

在这里插入图片描述

右线性文法

在这里插入图片描述

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

重点1

消除左递归

在这里插入图片描述

FIRST、FOLLOW集

可参考文章https://blog.csdn.net/qq_66345100/article/details/124520295
在这里插入图片描述
在这里插入图片描述

多个符号形成的符号串的First结合:

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

特殊的,符号串ABC...,ABC都可以推导出 ε ,那么把 ε 也加到First(X)中。

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

在这里插入图片描述

LL(1)文法

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

LR(0)文法

不存在移进-归约冲突和归约-归约冲突则为 LR(0)文法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SLR(1)文法

SLR文法不存在归约-归约冲突,有可能存在移进-归约冲突,但是如果可以用 follow集解决则是 SLR文法。换句话说,SLR文法分析过程可以解决归约-归约冲突,但是不一定能解决移进-归约冲突。用 follow集来处理即出现移进-归约冲突的两条产生式,如果其 follow集相交为空则为 SLR文法,反之不是。当然,如果以上两种冲突都不存在自然是了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LR(1)文法

因为 LR(1)文法的范围比较大,所以文法几乎都是 LR(1)的,现在知道的只有当合并同心集产生了归约-归约冲突时才只属于 LR(1)文法,而不属于其他文法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LALR(1)文法

合并同心集不会产生新的移进-归约冲突,但是会产生新的归约-归约冲突,如果没产生新的归约-归约冲突就是 LALR 文法,反之不是。
在这里插入图片描述
在这里插入图片描述
可参考文章:https://blog.csdn.net/weixin_44225182/article/details/105599118

重点2

逆波兰式

在这里插入图片描述

中缀式

逆波兰式的逆写
在这里插入图片描述

四元式

在这里插入图片描述

布尔表达式

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值