编译原理4 - 语法分析 (二)

目录

八、自底向上的分析概念

自底向上的语法分析

移入-规约分析例子

移入-规约分析的工作过程

移入-规约分析可采取的4种动作

移入-规约分析关键问题

九、LR分析法概念

LR分析法定义

LR(K)分析

LR分析法的基本原理

句柄

LR 分析器(自动机)的总体结构

例子

LR分析器的工作过程

LR分析器的算法

如何构造给定的LR分析表?

十、LR(0) 分析

LR(0)项目 

增广文法

例 :

引入的目的

文法中的项目

如何根据LR(0)文法构成一个自动机

十一、LR(0)分析表构造 (算法)

CLOSUER函数

GOTO函数

LR(0)分析表构造算法

移进 / 归约冲突 和 归约 / 归约冲突

如何消解冲突

十二、SLR分析

LR(0)分析表的时候会有移入归约冲突

SLR分析的基本思想

表达式文法的SLR分析表

SLR分析表构造算法

SLR分析中的冲突

I2 也会有冲突。如何化解呢?LR1分析法


八、自底向上的分析概念

自底向上的语法分析

  • 从分析树的底部(页节点)向顶部(根节点)的方向构造分析树。
  • 可以看成是将输入串W归约为文法开始符号s的过程
  • 自顶向下的语法分析采用最左推导方式
  • 自底向上的语法分析采用最左规约方式(反向构造最右推导
  • 自底向上的语法分析通用的框架  ——  移入-规约分析

移入-规约分析例子

移入-规约分析的工作过程

移入-规约分析可采取的4种动作

  1. 移入:将下一个分析符号移动到栈顶端
  2. 规约:被规约的符号串的右端必然处于栈顶。语法分析器在栈中确定这个串的左端,并决定那个非终结符来替换这个串
  3. 接收:宣布语法分析过程成功完成
  4. 报错:发现语法报错,并调用错误恢复子例程。

移入-规约分析关键问题

句柄:应该是句型的最左直接短语。

思考:计算机如何识别句柄的呢?

九、LR分析法概念

LR分析法定义

  • LR文法是最大的、可构造出相应的移入-规约语法分析器的文法类
  • L:对输入从到右的扫描
  • R:反向构造出一个最推导序列

LR(K)分析

  • 需要向前查看k个输入符号的LR分析
  • K = 0 或k = 1有实践意义。省略时K = 1;

LR分析法的基本原理

自底向上分析的关键问题是:如何找到句柄。

句柄

是逐步形成的,用“状态”表示句柄识别的进展程度。

LR 分析器(自动机)的总体结构

例子

LR分析器的工作过程

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值