读龙书学编译原理 语法分析(12)...

Posted 内脏坏了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读龙书学编译原理 语法分析(12)...相关的知识,希望对你有一定的参考价值。

那么最后我就来看看这个所谓的lr(0)分析表生成算法 :

技术分享

这个算法乍一看好像又和前面脱节了, 但是如果仔细看之前的讲解, 比如下图, 仔细比较, 感受一下 ...

技术分享

你会发现 : 每次产生的D其实就相当于是一个新的状态, 那么再看一下closure 和 goto的具体实现 :

技术分享

不难发现closure其实就是把所有原推导式左侧点的右侧的非终结符(也就是即将探索的第一个非终结符)的推导式全部加入这个集合, 那么为什么要这样做呢 ? 因为这个算法是并行的, 比如上图, 在执行推导式0的时候, 他需要先完成推导式1, 完成之后再完成推导式0, 那么其实他真正需要的其实是1, 只有1完成之后才能完成0, 也就是说它真正需要的是一个终结符, 这个过程就是不断地化简非终结符得到终结符的过程... 这就是所谓的closure ... 至于goto, 其实就是把集合中所有得到x能够进行的转化求出来, 作为新的状态.

差不多就是这样, 其实这一波lr(0)确实有点卒, 但是仔细看看还是勉强能够理解的, 还是要看具体撸代码, 不撸代码也只是看看作为课外知识了解一下...

以上是关于读龙书学编译原理 语法分析(12)...的主要内容,如果未能解决你的问题,请参考以下文章

读龙书学编译原理 语法分析(15)...

读龙书学编译原理 语法翻译...

读龙书学编译原理 语义分析...

读龙书学编译原理 手撸编译器...

读龙书学编译原理 手撸编译器...

读龙书学编译原理 语义分析...