下载此文档

编译原理自底向上优先分析法.ppt


文档分类:金融/股票/期货 | 页数:约57页 举报非法文档有奖
1/57
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/57 下载此文档
文档列表 文档介绍
编译原理自底向上优先分析法
学****目标:
掌握:构造算符优先关系表,进行算符优先分析,构造优先函数
理解:算符优先文法,最左素短语
了解:简单优先分析法
1 自底向上分析方法概述
2 自底向上优先分析方法概述
3 算符优先分析法
1 自底向上分析方法概述
基本思想
从输入符号串开始,利用文法的产生式逐步进行归约,试图归约到文法开始符
从语法树角度看,是以输入符号串作为语法树的末端结点符号串,自底向上的构造语法树,使文法开始符正好是该语法树的根。如果最终根结点是开始符,则输入符号串是语言的一个句子,否则不是。
自底向上分析过程实际上是一个不断进行直接归约的过程。
遇到的问题
如何找出进行直接归约的“可归约串”(句柄)
基本实现方法-“移进-归约”方法
引进一个先进后出的符号栈来存放符号
对输入符号串自左向右进行扫描,并把当前输入符号下推入栈中(移进),
边移进边分析,一旦栈顶符号串形成某个句型的句柄(为某产生式的右部)时,就用相应的非终结符(产生式的左部)替换它(归约)。
重复这一过程,直到输入符号串的末端,此时如果栈中只剩文法开始符号,则输入符号串是文法的句子,否则不是。
规范归约:
自底向上分析的移进-归约过程是自顶向下最右推导的逆过程,因为最右推导为规范推导,所以自左向右的归约称为规范归约。
例文法: (1) S→aAcBe (2)   A→b
(3)   A→Ab (4) B→d
输入串 abbcde#的最右推导的过程为:
S=>aAcBe=>aAcde=>aAbcde=>abbcde
自底向上分析的过程为:
abbcde|-aAbcde|-aAcde|-aAcBe|-S
例文法: (1) S→aAcBe (2)   A→b
(3)   A→Ab (4) B→d
判断输入串 abbcde# 是否为该文法的句子
用符号栈对输入符号串自底向上的分析过程为:
归约(S→aAcBe)
#
#aAcBe
10)
接受
#
#S
11)
移进e
e#
#aAcB
9)
归约(B→d)
e#
#aAcd
8)
移进d
de#
#aAc
7)
归约(A→Ab)
cde#
#aAb
5)
移进c
cde#
#aA
6)
移进b
bcde#
#aA
4)
归约(A→b)
bcde#
#ab
3)
移进b
bbcde#
#a
2)
移进a
abbcde#
#
1)
动作
输入符号串
符号栈
步骤
关键问题:如何在分析的过程中确定句柄
何时移进?栈顶末形成句柄
何时归约?栈顶形成句柄
常用自底向上分析法:
算符优先分析法(3)
LR类分析法(第7章)
2 自底向上优先分析法概述
优先分析法两类:
简单优先分析法
基本思想:按一定原则定义文法中所有符号(终结符和非终结符)之间的优先关系,按照这种关系确定归约过程中的句柄并实行归约。
是一种规范归约。
简单优先分析法准确、规范,但效率低,不实用,不介绍。
算符优先分析法
基本思想:只定义文法中终结符之间的优先关系(不考虑非终结符),并由这种关系指导分析过程
不是规范归约
算符优先分析法分析速度快,特别适用于表达式的分析。缺点是不规范,常常要采用适当措施克服其缺点。
3 算符优先分析法
算符优先分析法特别适用于表达式的分析
从表达式得到的启发:
表达式的归约顺序与运算顺序是一样的
通常算术表达式的运算次序是先乘除后加减,同优先级时服从左结合
E→E+T|T
T→T×F|F
F→(E)|i
符号串E+T+T×F的归约过程为:
E+T+T×F |- E+T×F |- E+T |- E

编译原理自底向上优先分析法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数57
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小640 KB
  • 时间2018-05-24