📄 5.1.4b.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='5.1.4.htm'" width="24" height="24" ></td>
<td>
<img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='5.1.5.htm'" width="26" height="24"></img></td>
</tr>
</table>
<br><br>
<table><tr><td>    </td>
<td class="content">
<p>
<b>例5.4</b> 当下面的产生式在分析树中应用时,我们就象图5.4所示的那样把有向边加入到依赖图中。
</p>
</td>
</tr>
</table>
<table align=center width=50%>
<tr>
<td align=center><b>产生式</b></td>
<td align=center><b>语义规则</b></td>
</tr>
<tr>
<td align=center>E->E<SPAN class=down><sub>1</sub></SPAN>+ E<SPAN class=down><sub>2</sub></SPAN></td>
<td align=center>E.val:=E<SPAN class=down><sub>1</sub></SPAN>.val + E<SPAN class=down><sub>2</sub></SPAN>.val</td>
</tr>
</table>
<p align=center><img src="5_4.gif" width="542" height="230"></p>
<table><tr><td>    </td>
<td class="content">
<p><br><br>
<p align=center>图 5.4  E.val是从E<sub>1</sub>.val和E<sub>2</sub>.val综合得出</p>
<br><br>
<p>依赖图中用·来标志的三个结点分别代表分析树中相应结点的综合属性E.val,E<SPAN class=down><sub>1</sub></SPAN>.val和E<SPAN class=down><sub>2</sub></SPAN>.val。从E<SPAN class=down><sub>1</sub></SPAN>.val到E.val的有向边表明E.val依赖于E<SPAN class=down><sub>1</sub></SPAN>.val,同样,从E<SPAN class=down><sub>2</sub></SPAN>.val到E.val的有向边表明E.val也依赖于E<SPAN class=down><sub>2</sub></SPAN>.val。图中的虚线表示的是分析树,它不是依赖图中的一部分。
</p>
<center><img src="images/5_5.gif" width="372" height="275"></center>
<p>
<b>例5.5</b> 图5.5表示的是图5.3的依赖图。依赖图中的结点由数字来标识,这些数字将在下面用到。从代表T.type的结点4有一条有向边
连到代表L.in的结点5,因为根据产生式D→TL的语义规则L.in := T.type,继承属性L.in依赖于属性T.type。根据产生式L→L<sub>1</sub>,id的语义规则
L<sub>1</sub>.in=L.in,可知L<sub>1</sub>.in依赖于L.in,所以有两条向下的有向边进入结点7和9。每一个与L产生式有关的语义规则addtype(id.entry,L.in)都产生
一个虚属性,结点6,8和10都是为这些虚属性建立的。
</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='5.1.4.htm'" width="24" height="24" ></td>
<td>
<img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='5.1.5.htm'" width="26" height="24"></img></td>
</tr>
</table>
</BODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -