第五章 语法分析——自上而下分析

本文介绍了自下而上语法分析方法,重点讲解了算符优先分析法,包括算符优先文法、优先表构造、算符优先分析算法设计和优先函数的概念,以及LR分析法的简介。
摘要由CSDN通过智能技术生成

    一、知识总结

    本章介绍自下而上语法分析方法。所谓自下而上分析法就是从输入串开始,逐步进行“归约”,直至鬼月到文法的开始符号。或者说,从语法树的末端开始,步步向上”归约“,直到根结。

 1、自上而下分析基本问题

    自上而下分析法是一种”移进-归约“法,大意是用一个寄存富豪的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分替换成(归约为)该产生式的左部符号。

    归约是指根据文法的产生式规则,把产生式的右部替换成左部符号。

2、规范归约

    (1)定义:令G是一个文法,S是文法的开始符号,假定αβδ是文法G的一个句型

其中α,β,δ∈(VN∪VT)*,A∈VN ,如果有

    

     则β称是句型αβδ相对于非终结符A的短语。因为句型是由开始符号推出来的,而短语是由非终结符号推出来的。所以,短语是句型的一部份或全部符号串。

    (2)直接短语

特别是,如果有A=>β,则称β是句型αβδ相对于规则A=>β的直接短语。

    (3)句柄

    一个句型的最左直接短语称为该句型的句柄。

    (4)规范归约
定义:假定α是文法G的一个句子,我们称序列
       αn, αn-1,······,α0
   是α的一个规范归约,如果此序列满足:
  (1)  αn= α
  (2)  α0为文法的开始符号,即α0=S

  (3)  对任何i,0 < i <=n, αi-1是从αi经把句柄替换成为相应产生式左部符号而得到的。

    (5)修剪语法树
使用修剪语法树的方法来加深对自下而上语法分析的理解。
子树:是由该树的某个结点(子树的根)连同它的所有子孙组成。

简单子树:只有单层分支的子树(只有父子两代没有第三代)

    (6)对语法树有如下结论
①每个句型都有一棵语法树与之对应
②每棵语法树的叶结点自左至右排列就组成一个句型
③每棵子树的叶结点自左至右排列就组成一个短语
④每棵简单子树的叶结点自左至右排列就组成一个直接短语

⑤每棵最左简单子树的叶结点自左至右排列就组成一个句柄

3、用符号栈进行自下而上的语法分析

    (1)‘#’的使用

在分析开始时,将‘#’预先进栈,作为栈底符号;

将‘# ’作为输入串的结束符

    (2)分析过程

自左向右对输入串ω不断向栈中进行移进——归约。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值