⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9.4.4.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 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>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
如果把自然循环作为"循环",那么,它有如下的一个实用的性质:
</p>
</td>
</tr>
</table>

<table>
<tr>
<td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
两个循环或者不相交或者一个完全包含(嵌入)在另一个里面,除非它们有相同的首结点。
</p>
</td>
</tr>
</table>

<table>
<tr>
<td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
于是,暂时忽略有相同首结点的情况,<font class = "definition2">内循环</font>的概念是:不包含任何其他循环的循环。
</p>
</td>
</tr>
</table>

<table>
<tr>
<td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p><img ALIGN=RIGHT src="images/9_18.gif"> 
当两个循环有相同的首结点时,很难说哪个是内循环。请看图9.20,若B1结尾的测试是<br>
<p>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp&nbsp&nbsp&nbsp</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 + -