跟大家请教两个语法的问题
1,LL和LR分析都要求First和Follow集。First和Follow集和LL、LR是什么关系呢?也就是在LL、LR中起什么作用呢?我看不明白。
2,LR、SLR、LALR的区别是怎么回事呢?
希望大侠给解释清楚。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
1,LL和LR分析都要求First和Follow集。First和Follow集和LL、LR是什么关系呢?也就是在LL、LR中起什么作用呢?我看不明白。
2,LR、SLR、LALR的区别是怎么回事呢?
希望大侠给解释清楚。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
移进/规约分析器。常见的包括LR(0),SLR(1),LALR(1)和LR(1)。分析能力严格递增。它们的区别是
LR(0):没有lookahead,只记录栈顶的最后一个handle的信息;
SLR(1):在LR(0)的基础上,增加一个符号的lookahead(也就是当前的输入符号);
LR(1):由一个lookahead(当前输入符号),记录栈内已有的所有信息;
LALR(1):合并LR(1)状态集合中所有拥有相同“core”的状态,如果出现冲突,则该文法不是LALR文法;
所谓的“记录信息”就是指不同的状态
至于First集合和Follow集合,是用于构造分析器的辅助数据结构。这个一两句话不好说清楚,建议找本书看看。
First和Follow集是什么意思你知道吗?为什么叫这个名字?你先查查这个吧。
First集合就是解析一个非终结符时,要"看到"的第一个终结符集合
Follow集合就是解析完一个非终结符后,要"看到"的终结符集合
哈哈,典型的望文生义!