9.7.3_1.htm
来自「建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术」· HTM 代码 · 共 27 行
HTM
27 行
<html>
<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link type="text/css" rel="stylesheet" href="../css/specification.css">
</head>
<BODY>
<table>
<tr>
<td>    </td>
<td class="content">
<p><font class = "example">例子:对下面一段Pascal源程序: </font>
<p> for l:=1 to 10 do </p>
<p> A[I,2*J]:=A[I,2*J]+1 </p>
<p>产生中间代码如下面左图所示。 </p>
<p><img height="600" src="../../chap9/../c_9/img/97321.jpg" width="500"> </p>
<p>
考察左图中(3)和(7),由于循环中没有J的定值点,所以其中J的所有引用的定值点都在循环外,从而(3)和(7)都是循环不变运算。另外(6)和(10)也是循环不变运算,这是因为分配给数组A的首地址addr(A)并不随循环的执行而改变。于是(3),(7),(6),(10)均可外提到循环的前置结点中,如下右图所示。其中B2'就是新建立的循环前置结点。</td>
</tr>
</table>
</BODY>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?