111得票9回答
LR、SLR 和 LALR 分析器有什么区别?

LR、SLR和LALR解析器之间的实际区别是什么?我知道SLR和LALR是LR解析器的类型,但就它们的解析表而言,它们的实际区别是什么? 如何展示一个文法是LR、SLR还是LALR呢?对于LL文法,我们只需展示解析表中任何单元格不应包含多个产生式规则。对于LALR、SLR和LR是否有类似的规...

7得票1回答
左递归LR(0)项目的闭包与epsilon转换是什么?

假设我有以下语法: A: ε | B 'a' B: ε | B 'b' 如何计算项 A: • B 'a' 的闭包? 换句话说,在计算闭包时,如何处理 epsilon 转移?

61得票4回答
LL(1), LR(1), LR(0), LALR(1)语法的例子是什么?

是否有一个在线资源,包含一些主要解析算法(LL(1), LR(1), LR(0), LALR(1))的语法集合?我找到了很多属于这些族群的单个语法,但是我不知道是否有一个好的资源,其中有人编写了一大批示例语法。 有没有人知道这样的资源?

21得票1回答
为什么存在LR(0)分析器但不存在LL(0)分析器?

我在维基百科上阅读了有关LL(0)和LR(0)解析器的内容,发现虽然存在LR(0)解析器,但并不存在LL(0)解析器。 根据我的理解,LL(k)/LR(k)中的k代表解析器可以查看当前正在处理的字符之后多少个字符。 那么我的问题是,为什么尽管存在LR(0),却没有LL(0)解析器呢?

7得票1回答
如何使用Warshall算法来确定规范的LR(1)分析器闭合集?

我正在尝试实现Warshall算法以快速计算LR(1)闭包。 我认为我理解了它在LR(0)中的工作原理: 图的节点是LR项,例如A → B • C 边是从A → B • C开始的“转换”,到C → • D 问题是,LR(1)需要计算展望集,并且我无法弄清如何将其纳入算法中。即使我知道任...

14得票1回答
为什么这个LR(1)文法不是LALR(1)?

这不是我的作业,我正在尝试理解LALR(1)语法。所以我找到了这篇文章S -> aEa | bEb | aFb | bFa E -> e F -> e 我写了LR项,但是我无法弄清楚为什么这是一个LR(1)语法而不是LALR(1)? 有人能帮忙吗?谢谢

7得票2回答
LR(1)解析器状态大小仍然是一个问题吗?

历史上,由于LR(1)分析器生成大量状态所需的资源要求,LALR(1)分析器比LR(1)分析器更受欢迎。很难相信这在今天的计算环境中仍然存在问题。现代编译器是否使用规范LR分析器构建,因为LALR语法是LR语法的一个子集?

13得票1回答
为什么编译器不能有“shift/shift”冲突?

我目前正在学习编译器,根据我的理解,在LR(0)中有一些情况会出现"移进/规约"或者"规约/规约"的冲突,但是不可能出现"移进/移进"的冲突!为什么不能出现"移进/移进"的冲突呢?

38得票7回答
LL解析器相对于LR解析器有哪些优势?

LL解析器在今天的解析器生成工具中相对流行的原因是什么优势? 根据维基百科,LR分析似乎比LL分析有优势: LR分析可以处理比LL分析更广泛的语言,并且在错误报告方面也更好,即当输入不符合语法时,它尽可能早地检测到语法错误。这与LL(k)(甚至更糟的是LL(*)解析器)形成对比,后者可能由...

10得票1回答