编译原理 [0x04][0x00] ==(5.1)语法分析__自下而上分析

 

 

自下而上分析的基本思想

 

 

采用移进-归约思想进行自下而上分析
 
基本思想
 
       用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的候选式时,即把栈顶的这一部分替换成( 归约 为)该产生式的左部符号。
 

 PS:即从后往前识别,当目前的识别的一串为产生式的时候,将非终结符归约成左侧的非终结符

         核心问题:识别可归约串

 

短语 

定义:
G 是一个文法, S 是文法的开始符号,假定α βδ是文法 G 的一个句型,如果有

                S\overset{* }{\Rightarrow }αAδ  A\overset{+ }{\Rightarrow }β

   则β称是句型αβδ相对于非终结符A短语

如果A{\Rightarrow }β,则称β是句型αβδ相对于规则A\rightarrowβ直接短语

 

eg:

考虑文法G(E)

               E \rightarrow T | E + T

               T \rightarrow F | T * F

               F \rightarrow (E) | i

和句型i1*i2+i3

短语:i1,i2,i3, i1*i2 , i1*i2+i3

直接短语:i1,i2,i3(直接构成,不需要进行二次从非终结符转换为终结符

句柄:即最左直接短语  i1

 

 

自下而上分析法(Bottom-up)

 

基本思想
  • 从输入串开始,逐步归约,直到文法的开始符号
  • 归约:根据文法的产生式规则,把串中出现的产生式的右部替换成左部符号
  • 从树叶节点开始,构造语法树
算符优先分析法(不讲)
  • 按照算符的优先关系和结合性质进行语法分析
  • 适合分析表达式
LR分析法
  • 规范归约:句柄作为可归约串

 

 

LR分析法

  • L:从左到右扫描输入
  • R:自下而上进行归约

 

工作框架

 

 

 

2019-10-27

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值