📄 a_5.4.htm
字号:
<html>
<head>
<title>5.4的解答</title>
</head>
<body background="../../images/background.gif" >
<center><font class="title2"><b>练习5.4</b></font></center><br>
<p>解答: (a)语法制导定义如下:</p>
<table align = center border = 1 width = "80%" cellspacing="0" cellpadding="5">
<tr>
<td width = "30%"><div align = center>产生式</div></td>
<td width = "70%"><div align = center>语义规则</div></td>
</tr>
<tr>
<td align=center>
E -> E<sub>1</sub>+T
</td>
<td >
if(E<sub>1</sub>.type==int) AND (T.type==int)
<p> THEN E.type:=int</p>
<p> ELSE E.type:=real;
</td>
</tr>
<tr>
<td >
E -> T
</td>
<td>
E.type:=T.type;
</td>
</tr>
<tr>
<td>
T -> num
</td>
<td>
T.type:=int;
</td>
</tr>
<tr>
<td>
T -> num.num
</td>
<td>
T.type:=real;
</td>
</tr>
</table>
<p> (b)语法制导定义如下:</p>
<table align = center border = 1 width = "80%" cellspacing="0" cellpadding="5">
<tr>
<td width = "30%"><div align = center>产生式</div></td>
<td width = "70%"><div align = center>语义规则</div></td>
</tr>
<tr>
<td align=center>
E -> E<sub>1</sub>+T
</td>
<td >
if(E<sub>1</sub>.type==int) AND (T.type==int)
<p> THEN E.type:=int</p>
<p> ELSE BEGIN
<p> E.type:=real;
<p> if(E<sub>1</sub>.type==int) AND (T.type==real)
<p> THEN E<sub>1</sub>.pf:='inttoreal'||E<sub>1</sub>.pf
<p> ELSE if(E<sub>1</sub>.type==real)AND(T.type==int)
<p>
THEN T.pf:='inttoreal'||T.pf
<p> END;
<p>E.pf:='+'||E1.pf||T.pf;
</td>
</tr>
<tr>
<td >
E -> T
</td>
<td>
E.type:=T.type; E.pf:=T.pf;
</td>
</tr>
<tr>
<td>
T -> num
</td>
<td>
T.type:=int; T.pf:=int.lexval;
</td>
</tr>
<tr>
<td>
T -> num.num
</td>
<td>
T.type:=real; T.pf:=real.lexval;
</td>
</tr>
</table>
</body>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -