在编译器设计中解析方法的正确分类是什么?

时间:2017-05-14 06:08:09

标签: parsing compilation compiler-construction recursive-descent recursive-backtracking

解析方法的正确分类是什么?我在不同的网站和讲座上看到了不同的分类。

以下是一些。

  
      
  1. 我在blog
  2. 上找到了这个   

I found this from a blog.

  
      
  1. 这是来自教程点Top Down
  2.   

Top Down

Bottom Up

Bottom Up

  
      
  1. 现在来自名为GATE
  2. Ravindra讲师   

enter image description here

  

我完全混淆了解析方法的正确分类。请在描述分类的答案中包含树状结构图像。

请留下您对问题或答案进行评论的评论。

1 个答案:

答案 0 :(得分:-1)

解析器分为两类:

<强> 1。自上而下的解析器:在这个解析方法中,构造从root开始(从起始符号开始)并继续向离开(可以是令牌或终端)

自上而下的解析器进一步划分为两种类型: -

  • 递归下降解析器:它为每个产品使用递归方法定义并且具有回溯的缺点。
  • 预测性解析:在此方法中,解析器能够预测要使用的生产。它消除了bactracking的问题。它使用 LL(1)语法。

2.Bottom up parser: 在这种解析方法中,树的构造是从叶节点开始并朝向根。

自下而上的解析器可以进一步分为两种类型:

1.Operator优先级解析器:它能够解析ambiguoas语法。

2.Shift reduce(SR)解析:语法应该是unambiguaos。

SR进一步分为四种类型:

  • SR(0)
  • SLR(1)
  • LALR(1)
  • CLR或LR(1)