编译原理随笔4(自下而上的语法分析-递归法)

Posted sqchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理随笔4(自下而上的语法分析-递归法)相关的知识,希望对你有一定的参考价值。

0、基础知识

  • 推导
    • 自上而下的语法分析过程
    • 预测分析程序,递归下降分析法(最左推导)
    • 注:要求文法是LL(1)文法
  • 规约
    • 自下而上的语法分析过程
    • 简单优先分析法,算符优先分析法,LR分析法

1、自下而上的语法分析方法

  • 过程思想:
    • 最左规约的过程
    • 由输入串开始,朝着文法的开始符号进行规约
    • 规约成非终结符
    • 注:输入串是指词法分析器送过来的二元式序列
  • 下推自动机PDA
  • 技术图片
  • 语法分析程序执行动作
    • 移入:读入一个单词,入栈,读头后移
    • 规约:检查栈顶 若干个符号能否规约,若能,则以产生式左部替代该符号,同时输出产生式编号----关键点:找句柄

    • 识别成功: 移入-规约结局为,栈内只剩下栈底符号和文法开始符号,读头指向结束符。
    • 识别失败
  • 分类
    • 优先分析器(Procedence Parser)
      • 简单优先分析器
      • 算符优先分析器
    • LR分析器 

简单优先分析器

  1. 基本思想
    1. 相邻文法符号之间的优先关系。
  2. 核心步骤:找句柄    
  3. 简单优先文法    
    1. 优点:技术简单
    2. 缺点:适用范围小,分析表尺寸太大
  4. 算符优先分析法
    1. 原理:仿照四则远算的计算过程构造的
    2. 特点:简单直观、是不规范的规约,未必按照句柄进行规约,
    3. 关键:规定符号(终结符)的优先级以及综合性质 
    4. 文法:表达式文法
      1. 不考虑非终结符,仅考虑终结符之间的优先级
    5. 直观算符分析法
    6. 技术图片
      1.  

        优点:简单,易于手工实现,适于分析各种算术表达式;;;可以很方便的将表达式翻译成目标指令(四元式)

      2. 因为用两个栈,容易将错误的语句识别为正确的,无法指出输入串出错位置。

    7. 通用算符分析法

 

以上是关于编译原理随笔4(自下而上的语法分析-递归法)的主要内容,如果未能解决你的问题,请参考以下文章

编译原理系列 实验三自下而上语法分析

编译原理系列 实验三自下而上语法分析

编译原理之语法分析-自下而上分析

编译原理之语法分析-自下而上分析

编译原理之语法分析-自下而上分析

编译原理之语法分析-自下而上分析