📄 4.5.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='4.5.2.1.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.6.0.htm'"></img></td>
</tr>
</table>
<br><br>
<center><img src="images/table4.7b.gif" width="500" height="351"></center><br>
<table><tr><td>    </td>
<td class="content">
<p>对于"移进-归约"分析而言请留心一个非常重要的事实:任何可归约串的出现必在栈顶,不会在栈的内部。对于规范归约而言,这个事实是明显的。由于规范归约是最右推导的逆过程,因此这种归约具有"最左"性,故可归约串必在栈顶,而不会在栈的内部。正因为如此,先进后出栈在归约分析中是一种非常有用的数据结构。</p>
<p>在4.7节中,我们还需要用到一个和句柄有关的重要概念,这就是文法的规范句型(右句型)的“活前缀”。它的定义如下:</p>
<p><img class="dingyi" src="../images/dingyi.gif"></img>
<font class="definition2">定义4.4</font>一个规范句型的一个前缀,若不含句柄之后的任何符号,则称它为该规范句型的一个活前缀。</p>
<p>早在2.1.2节中我们已介绍过有关符号串的前缀的含义。例如,符号串abc的前缀有ε,a,ab和abc。</p>
<p>在表4.7(a)和(b)中,除去接受状态以外分析过程的每一步骤,栈里的文法符号串加上剩余输入符号串恰好是一个规范句型。而且栈里的文法符号串正好是这个句型的一个活前缀。如在表4.7(a)的前三步中可以看到ε,a及ab都是符号串abbcde的活前缀,而且除这三个之外符号串abbcde再没有其它的活前缀。在其它步骤中,我们还可以看到aA是符号串aAbcde的一个活前缀,aAb是号串aAbcde的另一个活前缀。</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='4.5.2.1.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='4.6.0.htm'"></img></td>
</tr>
</table>
</BODY>
</html>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -