编译原理笔记

174 阅读1分钟

@TOC 在这里插入图片描述

第四章

在这里插入图片描述

FIRST、FOLLOW集

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

LL(1)文法

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

LR(0)文法

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

SLR(1)文法

SLR文法不存在归约-归约冲突,有可能存在移进-归约冲突,但是如果可以用 follow集解决则是 SLR文法。换句话说,SLR文法分析过程可以解决归约-归约冲突,但是不一定能解决移进-归约冲突。用 follow集来处理即出现移进-归约冲突的两条产生式,如果其 follow集相交为空则为 SLR文法,反之不是。当然,如果以上两种冲突都不存在自然是了。 ———————————————— 版权声明:本文为CSDN博主「棉花糖灬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/zuzhiang/ar… 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

LR(1)文法

因为 LR(1)文法的范围比较大,所以文法几乎都是 LR(1)的,现在知道的==只有当==合并同心集产生了归约-归约冲突时==才只属于== LR(1)文法,而不属于其他文法。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 ![在这里插入图片描述](img-blog.csdnimg.cn/4f88d00bf44… =80%x)

LALR(1)文法

合并同心集不会产生新的移进-归约冲突,但是会产生新的归约-归约冲突,如果没产生新的归约-归约冲突就是 LALR 文法,反之不是。 ![在这里插入图片描述](img-blog.csdnimg.cn/d22962be443… =80%x) ![在这里插入图片描述](img-blog.csdnimg.cn/14d1a7a8164… =80%x)