📄 6.2.1b.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.2.1.htm'"></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.2.2.htm'"></img></td>
</tr>
</table>
<br><br>
<table><tr><td>    </td>
<td class="content">
<p>
象Pascal这样的语言的实现则使用扩充的控制栈来管理过程的活动。当出现一个调用时,一个活动的执行被打断,且有关机器状态的信息,如程序计数器的值和机器各寄存器的值,就被存入栈中。当控制从一个调用返回时,在恢复了有关寄存器的值和把程序计数器的值置为紧接调用之后的一个点处时,被中断的活动可以重新开始。生存期包含于一个活动中的那些数据目标,可以与该活动有关的其它信息一起存放在栈中。我们将在下一节中讨论这种策略。
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
运行时刻内存中一个单独的区称为堆,它存放有其它的信息。Pascal允许数据在程序控制之下进行分配,这种数据的存储空间是从堆中得到的。
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
栈和堆的大小可以随程序的执行而变化。因此,在图6.6中我们表示出了根据需要栈和堆的迎面增长的变化。 Pascal语言同时需要运行时刻的栈和堆。
</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='6.2.1.htm'"></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.2.2.htm'"></img></td>
</tr>
</table>
</BODY>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -