移入——归约技术

归约是编译原理中自底向上语法分析的关键步骤,通过将字符串逆向匹配产生式来替换非终结符号。句柄是分析过程中用于指导归约的特定子串。在无二义性文法中,每个右句型有唯一句柄。移入-归约分析技术结合移入、归约、接受和报错四种操作,但可能遇到移入/归约和归约/归约冲突,这些问题通常通过特定的LR语法解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

归约

定义:我们可以将自底向上语法分析过程看成是建一个串w“归约”慰问发开始符号的过程,在归约中,一个与某产生式体相匹配的特定子串被替换为该产生式的头部的非终结符号。
定义理解起来比较晦涩,我们来看个例子就知道了。
已知有文法

E ——> E + T | T
T ——> T * F | F
F ——> ( E ) | id

他的产生式为 id * id
那么归约过程为:

id * id =》 F * id =》 T * id =》 T * F =》 T =》 E

显而易见,这就是一个反向的最右推导。

句柄

定义:如果有S=》αAw=》αβw,那么紧跟α的产生式A->β是αβw的一个句柄。
特性:
1)句柄右边的串w一定只包含终结符号。
2)如果一个文法无二义性,那么该文法的每个右句型都有且只有一个句柄。

例如,对于上述例子而言

  • id1 * id2 句柄为 id1
  • F * id2 句柄为 F
  • T * id2 句柄为 id2
  • T * F 句柄为 T * F
  • T 句柄为 T

#移入——归约分析技术
移入——归约语法分析是自底向上语法分析的一种形式。他使用一个栈来保存文发符号,并用一个输入缓冲区来存放将要进行语法分析的其余符号。
其分析器会采取以下四中动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值