📄 2.4.4.htm
字号:
<html>
<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<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=726 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="2.4.2.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_3/3.1.1.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_2.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>
</tr>
<tr>
<td><p align="center">北京大学计算机科学与技术系</p> </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"
>
练习
</font></b></td>
</tr>
<tr>
<td height="190%" colspan="2"> <blockquote>
<p> 2.1 考虑文法G[S],其产生式如下:
<br> S→(L)|a
<br> L→L,S|S
<br> (a)试指出此文法的终结符号、非终结符号。
<br> (b)给出下列各句子的分析树:
<br> ①(a,a)
<br> ②(a,((a,a))
<br> ③(a,((a,a),(a,a)))
<br> (c)构造在(b)中的各个句子的一个最左推导。并以②为例,给出每次推导后得到的句型的短语、直接短语。
<br> (d)构造在(b)中的各个句子的一个最右推导。
<br> (e)这个文法生成的语言是什么?
<br>
<br> 2.2 考虑文法G[S]
<br> S→aSbS|bSaS|ε
<br> (a)试说明此文法是二义性的。可以从对于句子abab有两个不同的最左推导来说明。
<br> (b)对于句子abab构造两个相应的最右推导。
<br> (c)对于句子abab构造两棵相应的分析树。
<br> (d)此文法所产生的语言是什么?
<br>
<br> 2.3 考虑文法G[bexpr]
<br>
bexpr→bexpr
<b>or</b> bterm|bterm <br>
bterm→bterm
<b>and</b> bfactor | bfactor <br>
bfactor→<b>not</b>
bfactor|(bexpr)|<b>true</b> |<b>false</b> <br>
(a)请指出此文法的终结符号、非终结符号和开始符号。
<br>
(b)试对于句子<b>not(true or false)</b>构造一棵分析树。 <br>
<br> 2.4 给出生成下述语言的三型文法:
<br>
(a){a<span class="down">n</span>|n≥0} <br>
(b){a<span class="down">n</span>b<span class="down">m</span>|n,m≥1}
<br>
(c){a<span class="down">n</span>b<span class="down">m</span>c<span class="down">k</span>|n,m,k≥0}
<br>
(d)Pascal语言的标识符
<br> (e)Pascal语言的整数
<br>
<br> 2.5 给出生成下述语言的上下文无关文法:
<br>
(a){a<span class="down">n</span>b<span class="down">n</span>a<span class="down">m</span>b<span class="down">m</span>|n,m≥0}
<br>
(b){1<span class="down">n</span>0<span class="down">m</span>1<span class="down">m</span>0<span class="down">n</span>|n,m≥0}
<br>
(c){wcw<span class="up">R</span>|w∈{a,b}*,w<span class="up">R</span>表示w的逆}
<br>
(d)不以0开始的奇数集
<br>
<br> 2.6 已知文法G[S],其产生式如下:
<br> S→(S)|ε
<br> (a)这个文法产生的语言是什么?
<br> (b)对于(a)的结果,试给出证明。
<br></p> </blockquote> </td>
</tr>
</table>
<p> </p>
<P align=center style="COLOR: #999999">本书由北京大学出版社1990年版《编译程序设计原理》改编,并加了大量演示程序。<BR></P>
<HR>
<P><BR></P>
<table align=center cellpadding=0 cellspacing=1 width=726 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="2.4.2.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_3/3.1.1.htm">进入下页</A>
</td>
</tr>
</table>
<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>
<P><BR></P>
<P> </P>
</body>
</html>
<html><script language="JavaScript"> </script></html>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -