📄 preface.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.0b.htm'" width="24" height="24"></td>
<td>
<img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='8.1.0.htm'" width="26" height="24"></img></td>
</tr>
</table>
<br><br>
<p align="center">
<font class="title1"> 第八章 代码生成</font><br></p>
<font class="title2"><b>8.0  前言</b></font>
<td class="content">
<p>我们的编译模型的最后阶段是代码生成。它将源程序的中间代码表示作为输入,并产生等价的目标代码作为输出,如图8.1所示。</p>
<br><br>
<p align=center><img src="images/8.1.gif"</p>
<p>代码生成器的输入包括中间代码和符号表中的信息。</p>
<p>
代码生成器的输出作为目标程序。类似于中间代码,这种输出也有若干种形式:绝对机器代码、可再定位机器语言、汇编语言等。本章,我们采用汇编代码作为目标语言。但是,我们重复强调,只要地址可由偏移值及符号表中的其它信息来计算,代码生成器便可以产生名字的再定位或绝对的地址。</p>
<p>
毫无疑问,对一个代码生成器最重要的评价标准是它能产生正确的代码。在重视正确性的前提下,使设计的代码生成器能够易于实现、测试以及维护,这也是重要的设计目标。</p>
<p>
另外,由于指令对于寄存器的操作常常要比对存储单元的操作快且指令短,因此,代码生成要考虑的一个重要问题是如何充分利用计算机的寄存器。本章,我们将给出一个充分利用寄存器的代码生成算法。</p>
</td></td>
</tr>
</table>
<table align=right width=300>
<tr>
<td>
<img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='8.0b.htm'" width="24" height="24"></td>
<td>
<img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='8.1.0.htm'" width="26" height="24"></img></td>
</tr>
</table>
</tr></table>
</BODY>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -