📄 arti_10692.htm
字号:
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>T→ST’<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 60.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=81>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>T→ST’<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 57.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=77>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=96>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 53pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=71>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td></tr>
<tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes">
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 60.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=81>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>T’<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 60.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=81>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 60.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=81>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 60.9pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=81>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 57.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=77>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>T’ →ε<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=96>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>T’ →,ST’<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 53pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-top-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=71>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td></tr></table></div>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">构造的预测分析表中没有多重入口,所以改造后的文法是LL(1)文法。<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"><p> </p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">2.对下面的文法G:<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> E→TE’<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> E’→+E|ε<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> T→FT’<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> T’ →T|ε<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> F→PF’<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> F’ →*F|ε<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> P→(E)|a|b|∧<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">(1)计算这个文法的每个非终结符的FIRST和FOLLOW集合。<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">(2)证明这个文法是LL(1)的。<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">(3)构造它的预测分析表。<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">(4)构造它的递归下降分析程序。<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">解答:<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">(1)计算每个非终结符的FIRST集合和FOLLOW集合:<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(E)={ (,a,b,∧}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(E’)={+,ε}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(T)={ (,a,b,∧}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(T’)={ (,a,b,∧,ε}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(F)={ (,a,b,∧}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(F’)={*,ε}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FIRST(P)={(,a,b,∧}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"><p> </p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(E)={ ),#}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(E’)={ ),#}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(T)={ ),#,+}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(T’)={ ),#,+}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(F)={ (,a,b,∧,),#,+}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(F’)={ (,a,b,∧,),#,+}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt"> FOLLOW(P)={*,(,a,b,∧,),#,+}<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt; mso-char-indent-count: 2.0">对于产生式E’→+E|ε FIRST(+E)={+} FOLLOW(E’)={ ),#} ,交集为空;<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">产生式T’ →T|ε FIRST(T)={ (,a,b,∧} FOLLOW(T’)={ ),#,+} ,交集为空;<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">产生式F’ →*F|ε FIRST(*F)={*} FOLLOW(F’)={ (,a,b,∧,),#,+},交集为空; <p></p></P>
<P class=MsoNormal style="MARGIN-LEFT: 15.75pt; TEXT-INDENT: 5.25pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt; mso-char-indent-count: .5; mso-para-margin-left: 1.5gd">产生式P→(E)|a|b|∧ FIRST((E))={(} FIRST(a)={a} FIRST(b)={b} FIRST(∧)={ ∧}交集为空,<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">由上可知满足LL(1)分析条件,该文法是LL(1)的。<p></p></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; LINE-HEIGHT: 16pt; mso-line-height-rule: exactly; tab-stops: 49.5pt">(3)预测分析表为:<p></p></P>
<table class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; WIDTH: 501.4pt; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-border-alt: solid windowtext .5pt" cellSpacing=0 cellPadding=0 width=669 border=1>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 29.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt" vAlign=top width=39>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center><p> </p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 56pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=75>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>+<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 56pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=75>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>*<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 77.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=103>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>(<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 2cm; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=76>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>)<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 52.8pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=70>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>a<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 54.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=73>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>b<p></p></P></td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 62.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-border-left-alt: solid windowtext .5pt; mso-border-alt: solid windowtext .5pt" vAlign=top width=83>
<P class=MsoNormal style="LINE-HEIGHT: 16pt; TEXT-ALIGN: center; mso-line-height-rule: exactly; tab-stops: 49.5pt" align=center>∧<p></p></P></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -