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

📄 9.7.2b.htm.bak

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 BAK
字号:
<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.7.1.htm'" ></td>
<td>
<img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='9.7.3.htm'" ></img></td>
</tr>
</table>
<br><br>
<table>
<tr>
<td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
<font size="4" color="FF0000">
&nbsp&nbsp&nbsp&nbsp&nbsp        c_out[B]=c-gen[B]∪(c_in[B]-c-kill[B]) <br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp        c_in[B]=∩c_out[P] (B不是开始块) <br>
<font size="2">
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp            P是B的前驱 <br>
</font>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp        c_in[B1]=Ф (B1是开始块) &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp(方程9.13) <br>
</font></p>
如果c-kill和c-gen分别由e-kill和e-gen代替的话,那么方程(9.13)和方程(9.10)一样。所以,(9.13)可用算法(9.4)求解。下面的例子揭示复写传播的某些应该注意的地方。
<p><font class = "example">例9.29</font> 考虑下边流图。这里c-gen[B1]={x:=y}和c-gen[B3]={x:=z},c-kill[B2]={x:=y},c-kill[B1]={x:=z}和c-kill[B3]={x:=y}。
<p align="center"> <br>
<img src="images/9_35.gif" align = "center">
<p>其它的c-gen和c-kill是Ф,由方程(9.13),in[B1]也是Ф。算法9.4一遍扫描判断出 <br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp    c_in[B2]=c_in[B3]=c_out[B1]={x:=y} <br>
&nbsp&nbsp&nbsp&nbsp类似,c_out[B2]=Ф和 <br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp        c_out[B3]=c_in[B4]=c_out[B4]={x:=z} <br>
&nbsp&nbsp&nbsp&nbsp最后,c_in[B5]=c_out[B2]∩c_out[B4]=Ф<br>
<p>
我们看出,按算法9.4的意义,复写x:=y和x:=z都不能到达B5中x的引用,虽然按到达_定值的意义这些x都能到达B5。这两个复写几乎都不能传播,因为不能用y(z)代替定值x:=y(x:=z)能到达的所有x引用,仅能做的是B4中的x用z代替,但代码没有改进。 下面详细说明删除复写语句的算法。
</p>
</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.7.2.htm'" ></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='9.7.2c.htm'" ></td>
</tr>
</table>

</BODY>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -