📄 7.7.1.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> 7·1翻译算术表达式a*-(b+c)为
<br> (a)一棵语法树,
<br> 〔b)后缀式,
<br> (c)三地址代码。
<br> 7·2翻译算术表达式一(a+b)*(c+d)+(a+b+c)为
<br> (a)四元式,
<br> (b)三元式,
<br> (c)间接三元式。
<br> 7.3试把下列C语言程序的可执行语句
<br> main ( )
<br> {
<br> int i;
<br> int a[101];
<br> while(i<=10〕
<br> a[i]=0;
<br> }
<br> 翻译为:
<br> (a)一棵语法树,
<br> (b)后缀式,
<br> (c)三地址代码。
<br> 7·4修改图7.4中计算说明语句中的名字的类型及相对地址的翻译模式,以允许在形如D→id:T的说明中可用一串名字表来代替单个名字。
<br> 7·5试编写一个程序,用来实现表7.5中给出的将布尔表达式翻译成三地址代码的语法制导定义。
<br> 7·6试编写一个程序,用来实现表76中给出的控制流语句的语法制导定义。
<br> 7·7试编写一个程序、用来实现7.5节中的回填算法。
<br> 7·8利用7.3节的翻译模式将下列赋值语句译成三地址代
<br> 码。
<br> A[i,j]:= B[i,j] +C[A[k,l]] +D[i+j]
<br> 7.9 Pascal语言中,语句
<br> for v:=initial to do stmt
<br> 与下列代码序列有相同含义:
<br> begin
<br> t<span class="down">1</span>:=initial;t<span class="down">2</span>:=final;
<br> if t<span class="down">1</span><=t<span class="down">2</span> then begin
<br> v:=t<span class="down">1</span>;
<br> stmt
<br> while v<>t<span class="down">2</span> do begin
<br> v:=succ(v);
<br> stmt
<br> end
<br> end
<br> end。
<br> (a)试考虑下述Pascal程序
<br> program forloop(input,output);
<br> var i,initial,final:integer;
<br> begin
<br> read(initial,final);
<br> for i:= initial to final do
<br> writeIn(i)
<br> end。
<br>
对于initial=MAXINT和final= MAXINT问此程序将做些什么?其中MAXINT为目标机器允许的最大整数。
<br>
*(b)试构造一个翻译pascal的for语句为三地址代码的语法
<br> 制导定义。
<br></p>
</blockquote>
</td>
</tr>
</table>
<p> </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 + -