📄 6.1.4.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.1.3.htm'"></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.1.5.htm'"></img></td>
</tr>
</table>
<br><br>
<font class="title2"><b>6.1.4 说明的作用域</b></font>
<table><tr><td>    </td>
<td class="content">
<p>
语言中的说明是一个把信息与名字联系起来的语法结构。说明可以是明显的,如Pascal中的说明片段:
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<P>
<B>var</B> i:integer
</p>
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
说明也可以是隐含的。例如,在Fortran程序中,任何以I开头的变量名都被假设为代表一个整数,除非另外加以说明。
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
在一个程序的不同部分可能有对同一个名字的独立的说明。语言的<B>作用域规则</B>决定了当这样的名字在程序正文中出现时应使用哪一个说明。在图6.1的Pascal程序中,i分别在第(4),(9)和(13)行被定义了3次,并且在过程readarray,partition和quicksort中名字i的应用是相互独立的。第(4)行的说明适用于第(6)行中的i的应用。即第(6)行中的i的两次出现是在第(4)行的说明的作用域之内。
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
由于作用域是名字的说明的一个性质,我们可以用“名字x的作用域”来简化“用于x的这次出现的名字x的说明的作用域”。在此意义上,图6.1中第(17)行上的i的作用域是quickSort的过程体。
</td></tr></table>
<table><tr><td>    </td>
<td class="content">
<p>
在编译时刻,对于遇到的名字,可以利用符号表来找到适用于该名字的说明。每当遇到一个说明,就在符号表中为它建立一个表项。只要在这个说明的作用域内,当我们查到在其中的名字的时候它的表项将被返回。有关符号表的建立将在第6.6节中讨论。
</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.1.3.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='6.1.5.htm'"></img></td>
</tr>
</table>
</BODY>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -