编译原理 —— 三元式和树形表示

三元式

三元式主要由三部分组成:

  • (OP,arg1,arg2)

其中,OP是运算符,arg1、arg2分别是第一和第二两个运算对象。当OP是一目运算时,常常将运算对象定义为arg1。

  • 三元式出现的顺序和语法成份的计值顺序相一致。
  • 三元式之间的联系是通过指示器实现的。

间接三元式

为了尽量少地改动三元式表,我们可以另设一张间接码表来表示有关三元式在三元式表的计值顺序。用这种方法处理的中间代码称为间接三元式。

X = ( A + B ) ∗ C X=(A+B)*C X=(A+B)C
Y = D ↑ ( A + B ) Y=D↑(A+B) Y=D(A+B)

间接码表三元式表
(1)(1)(+,A,B)
(2)(2)(*,(1),C)
(3)(3)(=,X,(2))
(1)(4)(↑,D,(1))
(4)(5)(=,Y(4))
(5)

三元式(1)(+,A,B)在间接码表中出现了两次,但三元式表中实际只有一个三元式。


树形表示

树形结构实际上是三元式的另一种表示形式。

A ∗ B + C ∗ D A * B + C*D AB+CD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值