我看过亚历克斯·艾肯( Aiken )的这门课,并阅读了许多其他资源。但我很难找到自上而下解析器的清晰分类。
本文件也没有提供明确的分类,但至少给出了我将在文章中使用的一些定义。下面是我到目前为止提出的分类:
回溯与预测
回溯
一种新的技术解决方案是,在该系统中,基于该系统目前拥有的相关信息,再对其进行再加工。在此基础上,提出了一种新的技术
预告
一种可预测的再加工方法,其特点是具有较好的加工能力,仅在加工中的下一次准输入符号的基础上,再选择更好的产品应用到更多的产品中。
递归下降与表驱动
递归下降
递归-下降-再下降法是由几个小的小函数组成的,其中对语法中的每个非终端都有一个小的小函数.当我们解析一句话时,我们把对应于我们所应用的系统中的产品的对应的转接器的转接器称为对应于所应用的系统的左端的转接器.如果这些子产品是递归的,那么我们就递归地调用该系统.
表驱动
还有另一种更接近的方法,用于实现一种新的、可预测的、更好的解析器,它使用一种更高级的表来存储类似的产品,再加上一种很好的、非常接近的产品,以保持我们在分析中的主要目标
据我所知,我有四种不同类型的解析器:
如果我是正确的,有人也能告诉我在下面4种类型的解析器中LL(k)解析器会掉在哪里吗?
发布于 2017-08-31 09:15:54
不是的。你有:
所以你可以:
具体来说,“递归下降与表/堆栈实现”在术语上是矛盾的。
所有表驱动的解析器实现都需要一个堆栈。这不是二分法。
在以下4种类型的解析器中,LL(k)解析器落在哪里?
任何地方。
https://stackoverflow.com/questions/45977375
复制相似问题