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

📄 8.6.1.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='8.5.2_2b.htm'"></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='8.6.1b.htm'"></img></td>
</tr>
</table>
<br><br>

<font class="title2"><b>8.6 基本块的dag表示法</b></font>         <BR><BR>
<font class="title2"><b>&nbsp;&nbsp;8.6.0 引言</b></font>         
<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content" width="865">
<P>本节和下一节讨论如何对基本块内的程序进行某些等价变换,使得从变换后的程序出发,能生成更有效的目标代码,所谓等价,是指不改变程序的运行结果;所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。我们通常称这种基本块内的变换为局部优化。对于实现基本块内的变换而言,一种有效的数据结构是<font class="definition3">有向非循环图</font>,也称<font class="definition3">无环路有向图</font>,简称dag(directed acyclic graph的缩写)。本节将介绍基本块的dag表示及dag的应用。</P>    
<P>一个<font class="definition3">基本块的</font>dag是一种在其结点上带有下述标记的有向非循环图:</P>
<P>1.图的叶结点由独特的标识符所标记,所谓独特的标识符是指或者是变量名字或者是常数。根据作用到一个名字上的算符,可以决定需要的是一个名字的左-值或是右-值;大多数叶结点代表右-值。叶结点代表名字的初始值,为此,通常我们将其标识符加上角标0,以避免与那些指示名字的当前值的标识符相混淆。</P>
<P>2.图的内部结点由一个运算符号标记。代表计算出来的值。</P>
<P>3.图中各个结点可能附加一个或多个标识符,表示这些标识符具有该结点所代表的值。</P>
<P>要注意的是,dag不同于流图。一个流图的每个结点均可以用一个dag表示,因为流图中的每个结点代表一个基本块。</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='8.5.2_2b.htm'"></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='8.6.1b.htm'"></img></td>
</tr>
</table>

</BODY>

<html><script language="JavaScript">

⌨️ 快捷键说明

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