parsing - 帮助理解LR(1)解析器,生成表吗?还有其他资源吗?

标签 parsing compiler-theory compiler-construction

我目前正在上一个编译器类,并且很难理解使用action/goto表的LR(1)解析算法以及如何手动生成这些表。现在,我们正在使用Cooper和Torczon的Engineering a Compiler作为类(class)教科书,我还阅读了有关表生成的Wikipedia页面,但是我仍然不理解这些概念。如果可能的话,有人可以推荐任何其他解释得很好的书或在线资源吗?我认为许多大学都会在该主题上提供良好的在线资源/幻灯片,但我不知道从哪里开始寻找。谢谢!

最佳答案

一些体面的讲义...

http://cs.oberlin.edu/~jdonalds/331/lecture14.html

了解和编写编译器有一部分,LR(1)分析的真正优势是什么?

http://www.amazon.com/Understanding-Writing-Compilers-Yourself-Macmillan/dp/0333217322

(也可以免费在线获得)

这是一个不错的摘要的链接,尽管缺少解释。

http://arantxa.ii.uam.es/~modonnel/Compilers/LR1Summary.pdf

更多讲义...

http://www.cs.umd.edu/class/spring2011/cmsc430/lectures/lec07.pdf

和这里的注释...

http://cobweb.ecn.purdue.edu/~smidkiff/ece495S/files/handouts/w3w4bBW.pdf

(包括goto和action表)

抱歉,我不能亲自解释,我不太确定自己。也许您会在周围找到一个善良,知识渊博的灵魂。

关于parsing - 帮助理解LR(1)解析器,生成表吗?还有其他资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5198860/

相关文章:

C++ 变量内存分配

c - 执行使用lex和yacc工具开发的c文件时发生错误

c++ - 代码块 wxWidgets 没有那个文件或目录

java - 使用Java发送POST数据

Ruby JSON.parse 返回一个数组

language-agnostic - 什么是抽象语法树/是否需要?

c++ - 我什么时候可以自信地使用 -O3 编译程序?

parsing - sqlite 日期排序

c++ - 在 C++ 中解析 PDB 文件以收集变量名称

compiler-construction - 决定一个不正确的程序是否可以有一个正确的延续