📄 c_6.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='6.0b.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.1.1.htm'"></img></td>
</tr>
</table>
<br><br>
<center><font class="title1">第六章 运行时刻环境</font></center><br>
<table><tr><td>    </td> </table>
<font class="title2"><b>  6.0 引言</b></font>
<table><tr><td>    </td>
<td class="content">
<p>
在考虑代码生成以前,我们需要把静态源程序正文与实现此程序的运行时刻的动作联系起来。在执行过程中,源程序正文中相同的名字可以在目标机器中指示不同的数据目标。本章主要讨论名字和数据目标之间的关系。
</p>
</td>
</tr>
</table>
<table><tr><td>    </td>
<td class="content">
<p>
数据目标的保留和释放是由运行时刻支持的程序包来管理的,它包括由生成的目标代码装配的程序。通常,程序包是指由内容彼此相关的多个程序集合而成的一组程序。在高级语言中过程是一个重要的语法范畴。我们将看到,运行时刻支持的程序包的设计将主要受到过程的语义的影响。对于类似Pascal的语言的支持程序包可以利用在这一章中介绍的技术来构造。同时在讨论中也涉及到Fortran和Lisp等语言。
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
我们把一个过程的每一次执行称作这个过程的一次活动(激活)。如果一个过程是递归的,那么在同一个时刻,它可能有几个活动是活着的,或说有几个活动存活。Pascal中的每一次过程调用导致一次处理该过程数据目标的活动。运行时刻数据目标的表示形式由它的类型来决定。通常,基本的数据类型,如字符、整型、实型等,可以用目标机器中等价的数据目标来表示。然而,复杂的数据类型,如数组、串、记录等,一般用基本目标的组合来表示。我们将在第七章中讨论它们的设计
</td></tr></table>
<br>
<br>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.0b.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.1.1.htm'"></img></td>
</tr>
</table>
</BODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -