📄 9.4.4.htm
字号:
<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 align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='9.4.2_2.htm'" ></td>
<td>
<img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='9.4.5.htm'" ></img></td>
</tr>
</table>
<br><br>
<font class="title2"><b>9.4.3 内循环</b></font>
<table>
<tr>
<td>    </td>
<td class="content">
<p>
如果把自然循环作为"循环",那么,它有如下的一个实用的性质:
</p>
</td>
</tr>
</table>
<table>
<tr>
<td>    </td>
<td class="content">
<p>
两个循环或者不相交或者一个完全包含(嵌入)在另一个里面,除非它们有相同的首结点。
</p>
</td>
</tr>
</table>
<table>
<tr>
<td>    </td>
<td class="content">
<p>
于是,暂时忽略有相同首结点的情况,<font class = "definition2">内循环</font>的概念是:不包含任何其他循环的循环。
</p>
</td>
</tr>
</table>
<table>
<tr>
<td>    </td>
<td class="content">
<p><img ALIGN=RIGHT src="images/9_18.gif">
当两个循环有相同的首结点时,很难说哪个是内循环。请看图9.20,若B1结尾的测试是<br>
<p> if a=10 goto B2 <br></p>
这两个自然循环有相同的首结点,并且不是一个嵌在另一个里面,我们把它们合并,看成一个循环。<br>
</td>
</tr>
</table>
<a name="9.4.4"></a>
<hr size=2 width=90% align=center color=red><br>
<font class="title2"><b>9.4.4 前置结点</b></font>
<table>
<tr>
<td>    </td>
<td class="content">
<p>
某些变换要求我们移动语句到首结点的前面。于是,开始处理一个循环L时,我们创建一个新块,叫做<font class = "definition2">前置结点</font>。
</p>
<p>
图9.21左边流图的循环中设前置结点后成为右边流图。前置结点的唯一后继是L的首结点,并且原来从L外到达L首结点的边都改成进入前置结点。从循环L里面到达首结点的边不改变。起初,前置结点为空,但L的变换可能放置一些语句到该结点中。
</p>
<p dir="rtl"> <p>
<img border="0" src="images/9_19.gif" align=center>
</td>
</tr>
</table>
<br>
<table align=right width=300>
<tr>
<td>
<img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='9.4.2_2.htm'" ></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='9.4.5.htm'" ></td>
</tr>
</table>
</BODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -