LCC编译器的源程序分析(66)DAG树分析例子

前面已经介绍创建分析树,下面就来详细地说明一个例子,看看到底生成什么样的分析树, C 源程序如下:
#005  int nTest1 = 1;
#006  int nTest2 = 2;
#007  int nTest3;
#008  int i;
#009  
#010  nTest3 = nTest1 + nTest2;
 
把上面的源程序分析后,就生成下面的 DAG 树,如下:
#2   ADDRLP4 count=1 nTest1
#3   CNSTI4 count=1 1
'1   ASGNI4 count=0 #2 #3 4 4
左子树是 ADDRLP4 ,右子树是 CNSTI4 ,根节点是 ASGNI4 。这是第 5 行的树。
 
#2   ADDRLP4 count=1 nTest2
#3   CNSTI4 count=1 2
'1   ASGNI4 count=0 #2 #3 4 4
左子树是 ADDRLP4 ,右子树是 CNSTI4 ,根节点是 ASGNI4 。这是第 6 行的树。
 
#2   ADDRLP4 count=2 nTest3
#5   ADDRLP4 count=1 nTest1
#4   INDIRI4 count=1 #5
#7   ADDRLP4 count=1 nTest2
#6   INDIRI4 count=1 #7
#3   ADDI4 count=1 #4 #6
'1   ASGNI4 count=0 #2 #3 4 4
这是第 10 行的树。根节点是 ASGNI4 ,它的左子树是 ADDRLP4 ,也就是 nTest3 。它的右子树是 ADDI4 ,也就是 nTest1 + nTest2 nTest1 是由 #4 INDIRI4 #5 ADDRLP4 树构成的。 nTest2 也是 #6   INDIRI4 #7   ADDRLP4 构成的。
前面 1 2 3 等号码是节点序号。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值