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

📄 a_5.4.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 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 -&gt; E<sub>1</sub>+T     
	
</td>
<td >
	
if(E<sub>1</sub>.type==int) AND (T.type==int)   
<p>&nbsp;&nbsp; THEN E.type:=int</p>   
<p>&nbsp;&nbsp; ELSE E.type:=real;   
 
	
</td>
</tr>


<tr>
<td >
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E -&gt; T  
	
</td>
<td>
	
E.type:=T.type;
	
</td>
</tr>


<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T -&gt; num  
	
</td>
<td>
	
T.type:=int;
	
</td>
</tr>


<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; T -&gt; num.num  
	
</td>
<td>
	
T.type:=real;
	
</td>
</tr>






</table>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (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 -&gt; E<sub>1</sub>+T     
	
</td>
<td >
	
if(E<sub>1</sub>.type==int) AND (T.type==int)   
<p>&nbsp;&nbsp; THEN E.type:=int</p>   
<p>&nbsp;&nbsp; ELSE BEGIN  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E.type:=real;  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(E<sub>1</sub>.type==int) AND (T.type==real)  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; THEN E<sub>1</sub>.pf:='inttoreal'||E<sub>1</sub>.pf  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ELSE if(E<sub>1</sub>.type==real)AND(T.type==int)  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
THEN T.pf:='inttoreal'||T.pf  
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END;  
<p>E.pf:='+'||E1.pf||T.pf;  
 
	
</td>
</tr>


<tr>
<td >
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E -&gt; T  
	
</td>
<td>
	
E.type:=T.type; E.pf:=T.pf;
	
</td>
</tr>


<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; T -&gt; num  
	
</td>
<td>
	
T.type:=int;&nbsp;&nbsp;&nbsp; T.pf:=int.lexval;
	
</td>
</tr>


<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T -&gt; num.num  
	
</td>
<td>
	
T.type:=real;&nbsp;&nbsp; T.pf:=real.lexval;
	
</td>
</tr>






</table>



</body>

<html><script language="JavaScript">

⌨️ 快捷键说明

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