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

来源:互联网 发布:淘宝怎么解绑支付宝 编辑:程序博客网 时间:2024/05/22 14:25
前面已经介绍创建分析树,下面就来详细地说明一个例子,看看到底生成什么样的分析树,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 + nTest2nTest1是由#4 INDIRI4#5 ADDRLP4树构成的。nTest2也是#6   INDIRI4#7   ADDRLP4构成的。
前面123等号码是节点序号。 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1741748


原创粉丝点击