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

📄 a_5.7.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 HTM
字号:
<html>
<head>
<title>5.7的解答</title>
</head>
<body background="../../images/background.gif" >
<center><font class="title2"><b>练习5.7</b></font></center><br>
<p>解答:&nbsp;</p>   


<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a)</p>     


<table align = center border = 1 width = "80%" cellspacing="0" cellpadding="5">
<tr>
<td width = "35%"><div align = center>产生式</div></td>
<td width = "65%"><div align = center>语义规则</div></td>
</tr>

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


<tr>
<td >
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R -&gt; +TR<sub>1</sub>    
	
</td>
<td>
	
if(R.i==int) AND (T.type==int)  
<p>&nbsp;&nbsp; THEN R<sub>1</sub>.i:=int</p>  
<p>&nbsp;&nbsp; ELSE R<sub>1</sub>.i:=real;</p>  
<p>R.s:=R<sub>1</sub>.s;
	
</td>
</tr>


<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R -&gt; ε    
	
</td>
<td>
	
R.s:=R.i;
	
</td>
</tr>


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


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





</table>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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 >
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E -&gt; TR       
	
</td>
<td >
	
R.itype:=T.type;&nbsp; R.ipf:=T.pf; 
<p>E.pf:=R.spf;&nbsp; E.type:=R.stype;</p> 
 
	
</td>
</tr>


<tr>
<td >
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R -&gt; +TR<sub>1</sub>    
	
</td>
<td>
	
if(R.itype==int) AND (T.type==int)  
<p>&nbsp;&nbsp; THEN R<sub>1</sub>.itype:=int</p> 
<p>&nbsp;&nbsp; ELSE BEGIN</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R<sub>1</sub>.itype:=real;</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(R.itype==real) AND (T.type==int)</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; THEN T.pf:='inttoreal'||T.pf</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ELSE if(R.itype==int)AND(T.type==real)</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
THEN R.ipf:='inttoreal'||R.if</p> 
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END;</p> 
<p>R<sub>1</sub>.ipf:='+'||R.ipf||T.pf;</p>
<p>R.stype:=R<sub>1</sub>.stype;&nbsp; R.spf:=R<sub>1</sub>.spf; 
	
</td>
</tr>


<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R -&gt; ε    
	
</td>
<td>
	
R.stype:=R.itype;&nbsp; R.spf:=R.ipf; 
	
</td>
</tr>




<tr>
<td>
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; T -&gt; num   
	
</td>
<td>
	
T.type:=int;&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; T.pf:=real.lexval;
	
</td>
</tr>



</table>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp; 注: R.ipf是R的继承属性,是它的前缀表示。</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R.spf是R的综合属性,是它的前缀表示。</p>
<p> </p>



</body>

⌨️ 快捷键说明

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