首页 > 其他 > 详细

编译原理随笔3(自上而下的语法分析-推导法)

时间:2019-09-21 20:19:58      阅读:97      评论:0      收藏:0      [点我收藏+]

1、理论基础

  • 上下文无关文法
  • 下推自动机(PDA)

2、语法分析方式

  • 自上而下分析(上-PDA栈顶,下-PDA栈底)
  • 自下而上分析
    • 优先分析
    • LR分析

3、PDA

技术分享图片

 

 PDA定义:

  • 技术分享图片
  • 用法:

    • 当输入串读完了,且下推栈为空; or 输入串读完了,且控制器到达某些终态

    • 技术分享图片

       原理解析:

      • 下推栈里面放着S(非终结符如:S->Sb|c) ,输入带是具体的语句如a+b# ,将语句与下推栈中中S相比,如果相同,消掉,读头向后移一位,继续比较
      • 当下推栈为空,且输入带为空(读头到末尾)则匹配,结束。
      • 如果下推栈中栈顶元素已经回溯完所有可能状态,仍不能和输入带的读头位置相匹配,-》不匹配,报错,结束。

4、带回溯的自上而下分析缺点

  1. 若文法存在左递归,会出现死循环
  2. 若产生式存在多个候选式,选择哪一个进行推导完全是盲目的。
  3. 回溯,时间&空间消耗大
  4. 若识别语句是错的,但是无法指出具体的错误。

5、不带有回溯的自上而下分析算法

  1. 消除左递归(如:P->Pa)

 

 

编译原理随笔3(自上而下的语法分析-推导法)

原文:https://www.cnblogs.com/sqchao/p/11564206.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!