4.10.5.htm

来自「建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术」· HTM 代码 · 共 34 行

HTM
34
字号
<html>
<head>
<title>4.5的解答</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link type="text/css" rel="stylesheet" href="../css/specification.css">
</head>
<body background="../images/background2.gif">

<center>
<center><font class="title2"><b>练习4.5</b></font></center><br>
</center>
<table><tr><td> </td>
<td class="content">
解:<br>
将所给文法消除左递归得G':<br>    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S →(L)|a <br> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L → SL' <br>   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L'→ ,SL' | ε <br>   
实现预测分析器的不含递归调用的一种有效方法是使用一张分析表和一个栈进行联合控制,下面构造预测分析表:<br> 
根据文法G'有<br> 
<table align=center width=500 class="content"> 
<tr><td>FIRST(s) = { ( , a )</td><td>FOLLOW(S) = { ) , ', ' , $ }</td></tr>    
<tr><td>FIRST(L) = { ( , a )</td><td>FOLLOW(L) = { ) }</td></tr> 
<tr><td>FIRST(L’) = { ', ' }</td><td>FOLLOW(L’) = { ) }</td></tr> 
</table> 
按以上结果,构造预测分析表M如下:<br> 
<center><img src="images/ex4.51.gif" ></center><br> 
文法G’是LL(1)的,因为它的LL(1)分析表不含多重定义入口。<br> 
预测分析器对输入符号串(a, (a, a))做出的分析动作如下:<br> 
<center><img src="images/ex4.52.gif" ></center><br> 
</td></tr></table>      
 
</body>      
</html>

⌨️ 快捷键说明

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