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

📄 7.7.1.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 HTM
字号:
<html>
<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE>BODY { MARGIN: 0px}
a{color:#0000ff;text-decoration:none}
a:hover{color:orange;text-decoratin:none} a:link{color:blue;text-decoratin:none}
td{font-size:12pt;color:#000000;border-width:1;border-color:#999999}
</STYLE>


<BODY bgColor=#ffffff>
<table align=center cellpadding=0 cellspacing=1 width=728 border=0 bordercolor=#999999 style="BACKGROUND-COLOR: #ffffff">
	<tr>
		<td style="BACKGROUND-COLOR: #dedede; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   180px" 
    align=middle 
   >
			<A href="7.7.0.htm">回到上页</A>
		</td>
		<td style="BACKGROUND-COLOR: #fcf4e2; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   180px" 
    align=middle 
   >
			<A href="#end">页末</A>
		</td>
		<td style="BACKGROUND-COLOR: #dedede; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   180px" 
    align=middle 
   >
			<A href="../c_8/c_8.htm">进入下页</A>
		</td>
		<td style="BACKGROUND-COLOR: #dedede; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   179px" 
    align=middle 
   >
			<A href="c_7.htm">回到首页</A>
		</td>
	</tr>
</table>
<table width="99%" border="0"> 
  <tr>  
    <td height="28">  
      <p align="center"><font size="5"style="COLOR: mediumblue" face=楷体_GB2312>编译原理网上教学版</font></p></td> 
    </td> 
  </tr> 
  <tr>  
    <td>  
      <div align="center">北京大学计算机系 </div> 
    </td> 
  </tr> 
</table> 
<TABLE align=center border=1 width="726">
  <TBODY>
  <TR>
    <TD bgColor=#6699cc height=23><strong><FONT style="COLOR: #dedede;FONT-SIZE: 13pt">
7.7.1 练习 
</font></b></td> 
  </tr> 
  <tr>  
    <td height="190%" colspan="2"> <blockquote> 
<p>&nbsp;&nbsp;&nbsp;    7·1翻译算术表达式a*-(b+c)为 
<br>&nbsp;&nbsp;&nbsp;    (a)一棵语法树, 
<br>&nbsp;&nbsp;&nbsp;    〔b)后缀式, 
<br>&nbsp;&nbsp;&nbsp;    (c)三地址代码。 
<br>&nbsp;&nbsp;&nbsp;    7·2翻译算术表达式一(a+b)*(c+d)+(a+b+c)为
<br>&nbsp;&nbsp;&nbsp;    (a)四元式, 
<br>&nbsp;&nbsp;&nbsp;    (b)三元式, 
<br>&nbsp;&nbsp;&nbsp;    (c)间接三元式。 
<br>&nbsp;&nbsp;&nbsp;    7.3试把下列C语言程序的可执行语句 
<br>&nbsp;&nbsp;&nbsp;                  main  (  ) 
<br>&nbsp;&nbsp;&nbsp;                  { 
<br>&nbsp;&nbsp;&nbsp;                    int i;  
<br>&nbsp;&nbsp;&nbsp;                    int  a[101]; 
<br>&nbsp;&nbsp;&nbsp;                    while(i<=10〕 
<br>&nbsp;&nbsp;&nbsp;                      a[i]=0; 
<br>&nbsp;&nbsp;&nbsp;                  }  
<br>&nbsp;&nbsp;&nbsp;翻译为: 
<br>&nbsp;&nbsp;&nbsp;        (a)一棵语法树, 
<br>&nbsp;&nbsp;&nbsp;        (b)后缀式, 
<br>&nbsp;&nbsp;&nbsp;        (c)三地址代码。 
<br>&nbsp;&nbsp;&nbsp;        7·4修改图7.4中计算说明语句中的名字的类型及相对地址的翻译模式,以允许在形如D→id:T的说明中可用一串名字表来代替单个名字。 
<br>&nbsp;&nbsp;&nbsp;        7·5试编写一个程序,用来实现表7.5中给出的将布尔表达式翻译成三地址代码的语法制导定义。 
<br>&nbsp;&nbsp;&nbsp;        7·6试编写一个程序,用来实现表76中给出的控制流语句的语法制导定义。 
<br>&nbsp;&nbsp;&nbsp;        7·7试编写一个程序、用来实现7.5节中的回填算法。 
<br>&nbsp;&nbsp;&nbsp;        7·8利用7.3节的翻译模式将下列赋值语句译成三地址代 
<br>&nbsp;&nbsp;&nbsp;码。 
<br>&nbsp;&nbsp;&nbsp;            A[i,j]:= B[i,j] +C[A[k,l]] +D[i+j] 
<br>&nbsp;&nbsp;&nbsp;        7.9  Pascal语言中,语句 
<br>&nbsp;&nbsp;&nbsp;            for  v:=initial to do stmt  
<br>&nbsp;&nbsp;&nbsp;与下列代码序列有相同含义: 
<br>&nbsp;&nbsp;&nbsp;             begin 
<br>&nbsp;&nbsp;&nbsp;                  t<span class="down">1</span>:=initial;t<span class="down">2</span>:=final;  
<br>&nbsp;&nbsp;&nbsp;                  if t<span class="down">1</span><=t<span class="down">2</span> then begin  
<br>&nbsp;&nbsp;&nbsp;                      v:=t<span class="down">1</span>; 
<br>&nbsp;&nbsp;&nbsp;                      stmt 
<br>&nbsp;&nbsp;&nbsp;                      while v<>t<span class="down">2</span>  do  begin 
<br>&nbsp;&nbsp;&nbsp;                           v:=succ(v); 
<br>&nbsp;&nbsp;&nbsp;                           stmt 
<br>&nbsp;&nbsp;&nbsp;                      end 
<br>&nbsp;&nbsp;&nbsp;                   end 
<br>&nbsp;&nbsp;&nbsp;              end。 
<br>&nbsp;&nbsp;&nbsp;    (a)试考虑下述Pascal程序 
<br>&nbsp;&nbsp;&nbsp;            program forloop(input,output); 
<br>&nbsp;&nbsp;&nbsp;                var  i,initial,final:integer; 
<br>&nbsp;&nbsp;&nbsp;                begin 
<br>&nbsp;&nbsp;&nbsp;                    read(initial,final); 
<br>&nbsp;&nbsp;&nbsp;                    for  i:=  initial  to  final  do 
<br>&nbsp;&nbsp;&nbsp;                      writeIn(i)  
<br>&nbsp;&nbsp;&nbsp;                end。 
<br> 
        &nbsp;&nbsp;&nbsp;对于initial=MAXINT和final= MAXINT问此程序将做些什么?其中MAXINT为目标机器允许的最大整数。  
        <br> 
        &nbsp;&nbsp;&nbsp;*(b)试构造一个翻译pascal的for语句为三地址代码的语法 
<br>&nbsp;&nbsp;&nbsp;制导定义。 
<br></p>       
      </blockquote> 
      </td> 
  </tr> 
</table> 
<p>&nbsp;</p> 
<P align=center style="COLOR: #999999">本书由北京大学出版社1990年版《编译程序设计原理》改编,并加了大量演示程序。<BR></P> 
</p> 
<hr> 
<br> 
<table align=center cellpadding=0 cellspacing=1 width=728 border=0 bordercolor=#999999 style="BACKGROUND-COLOR: #ffffff">
	<tr>
		<td style="BACKGROUND-COLOR: #dedede; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   180px" 
    align=middle 
   >
			<A href="7.7.0.htm">回到上页</A>
		</td>
		<td style="BACKGROUND-COLOR: #fcf4e2; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   180px" 
    align=middle 
   >
			<A href="#top">页首</A>
		</td>
		<td style="BACKGROUND-COLOR: #dedede; BORDER-BOTTOM-COLOR: #999999; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT-COLOR: #999999; BORDER-LEFT-WIDTH: 1px; BORDER-RIGHT-COLOR: #999999; BORDER-RIGHT-WIDTH: 1px; BORDER-TOP-COLOR: #999999; BORDER-TOP-WIDTH: 1px; COLOR: #666666; FONT-SIZE: 12pt; 
    WIDTH: 
   180px" 
    align=middle 
   >
			<A href="../c_8/c_8.htm">进入下页</A>
		</td>
	</tr>
</table>
<br> 
<P align=center style="FONT-SIZE: x-small">《编译程序设计原理》网上教程由<a href="http://www.cs.pku.edu.cn">北京大学计算机科学与技术系</a>制作开发。<BR>由96、97、98级部分同学在丁文魁教授的领导下共同制作完成。如果程序或页面存在问题,请与<A href="mailto:jack.stone@263.net">我们</A>联系。</P>
</body> 
</html> 

<html><script language="JavaScript">

⌨️ 快捷键说明

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