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

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

<font class="title2"><b>6.2.3 编译时刻的局部数据的设计</b></font>        
     
<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<P>
假设运行时刻的存储是在一个连续的字节块中的,在这里一个字节是内存可以编址的最小单位。在许多机器上,一个字节有8位并且由若干个字节构成一个机器字。多字节的目标被存放在连续的字节中并且给出第一个字节的地址。 
</p>
</td></tr></table>

<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
一个名字所需的存储空间大小是由其类型决定的。基本数据类型,如字符、整数、或实数,通常可以存放在整数个字节中。对于组合式类型,如数组或记录,存储空间必须足以存放它的所有组成部分。为了便于存取,一般都把组合式类型的量存放在一个连续的字节块中。在第七章中将有更详细的讨论。
</td></tr></table>

<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
局部数据域是在编译时刻检查过程中的说明时设计的。而可变长度的数据将存放在这个域之外。我们要随时保存一个已经分配给了前面的说明的内存单元的计数结果。从这个得数我们可以为一个局部数据确定一个相对于某个存储位置(例如活动记录的开始位置,或其它位置)的相对地址。相对地址,或偏移量,是某个位置的地址与数据实际存放地址(数据目标)之差。     
</td></tr></table>

<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
数据目标的存储设计受到目标机器编址限制的很大影响。例如,整数加法指令可能要求整数的地址能被4整除等等。因此,有时尽管一个10个字符的数组仅需要10个字节来存放,但编译器可能分给它12个字节。以求分配上的全局统一。        
</td></tr></table>

<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
<B>例6.3</B>&nbsp;下面给出一个局部数据设计示例。假定机器以字节编址,每个字节有8位。分别对于不同类型数据的设计做如下安排:     
<BR>&nbsp;&nbsp;&nbsp;&nbsp;字符型 &nbsp;  占用8位,     
<BR>&nbsp;&nbsp;&nbsp;&nbsp;整&nbsp;&nbsp;型 &nbsp;  占用32位(分配在可被4整除的字节地址中), 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;实&nbsp;&nbsp;型 &nbsp;  占用32位或64位, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;指&nbsp;&nbsp;针 &nbsp;  占用32位,等等。 
</td></tr></table>

<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<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='6.2.2.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.3.0.htm'"></img></td>
</tr>
</table>

</BODY>

⌨️ 快捷键说明

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