📄 arti_10718.htm
字号:
<tr>
<td>
<div v:shape="_x0000_s1047">
<div>B2</div></div></td></tr></table> if C<D goto L1 </P>
<div> E:=A*A</div>
<div> F:=F+1</div>
<div> E:=E+F B2</div>
<P>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div v:shape="_x0000_s1052">
<div>B5</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div v:shape="_x0000_s1051">
<div>B4</div></div></td></tr></table> Write E </P>
<div> Halt</div>
<div> L1:E:=B*B</div>
<div> F:=F+2</div>
<div> E:=E+F B3</div>
<div> Write E</div>
<div> if E>100 goto L2</div>
<div> halt B4</div>
<div> L2: F:=F-1</div>
<div> Goto L1 B5</div>
<div> </div>
<div>3.试对以下基本块B1和B2:</div>
<div> B1: B2:</div>
<div> A:=B*C B:=3</div>
<div> D:=B/C D:=A+C</div>
<div> E:=A+D E:=A*C</div>
<div> F:=2*E F:=D+E</div>
<div> G:=B*C G:=B*F</div>
<div> H:=G*G H:=A+C</div>
<div> F:=H*G I:=A*C</div>
<div> L:=F J:=H+I</div>
<div> M:=L K:=B*5</div>
<div>L:=K+J</div>
<div> M:=L</div>
<div>分别应用DAG对他们进行优化,并就以下两种情况分别写出优化后的四元式序列:</div>
<div>(1)假设只有G,L,M在基本块后面还要被引用;</div>
<div>(2)假设只有L在基本块后面还要被引用。</div>
<div>解答:</div>
<div> 基本块B1的DAG图为:</div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<P>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n1</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>B0</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n2 </SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>C0</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n3</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>*</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n 4</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>/</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>A,G</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>D</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n5</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>+</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>E</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n6</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>2</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n7</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>*</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n8</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>*</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>H</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>F</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n9</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>*</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>F,L,M</div></div></td></tr></table> </P>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div><br clear=all>
<div> </div>
<div>假设只有G,L,M在基本块后面还要被引用,B1优化后的中间代码为:</div>
<div> G:=B+C </div>
<div> H:=G*G</div>
<div> L:=H*G</div>
<div> M:=L</div>
<div>假设只有L在基本块后面还要被引用,则B1优化后的中间代码为:</div>
<div> G:=B+C </div>
<div> H:=G*G</div>
<div> L:=H*G</div>
<div>基本块B2的DAG图为:</div>
<div> </div>
<P>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n1</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>3</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>B</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n2</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>A0</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>A</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div><SUP>n3</SUP></div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>C0</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
<div>
<div>B</div></div></td></tr></table>
<table cellSpacing=0 cellPadding=0 width="100%">
<tr>
<td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -