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

📄 4.10.12.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 HTM
字号:
<html>
<head>
<title>4.12的解答</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.12</b></font></center><br>
</center>
<table><tr><td> </td>
<td class="content">
解:<br>
该文法的拓广文法G'为
<table align=center width=450 class="content">
<tr><td>(0) E' → E</td><td>(1) E → E+T</td></tr>     
<tr><td>(2) E  → T</td><td>(3) T → TF</td></tr>     
<tr><td>(4) T  → F</td><td>(5) F → F*</td></tr>     
<tr><td>(6) F  → a</td><td>(7) F → b</td></tr>     
</table>  
其LR(0)项目集规范族和goto函数(识别活前缀的DFA)如下:<br>  
I<sub>0 </sub> = {E'→·E, E→·E+T, E→·T, T→·TF, T→·F, F→·F*,<br>
&nbsp;&nbsp;&nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;<b>&nbsp;F→·a, F→·b}<br>  
I<sub>1</sub> = {E'→E·, E→E·+T}<br>  
I<sub>2</sub> = {E→T·, T→T·F, F→·F*, F→·a, F→·b}<br>  
I<sub>3</sub> = {T→F·, F→F·*}<br>  
I<sub>4</sub> = {F→a·}<br>  
I<sub>5</sub> = {F→b·}<br>  
I<sub>6</sub> = {E→E+·T, T→·TF, T→·F, F→·F*, F→·a, F→·b}<br>  
I<sub>7 </sub> = {T→TF·, F→F·*}<br>  
I<sub>8 </sub> = {F→F*·}<br>  
I<sub>9</sub> = {E→E+T·, T→T·F, F→·F*, F→·a, F→·b}<br>  
<center><img src="images/ex4.121.gif"></center><br>  
求<b>FOLLOW</b>集:<br>  
&nbsp;&nbsp;&nbsp;<b>&nbsp;FOLLOW</b>(E)={+, $}<br>  
&nbsp;&nbsp;&nbsp;&nbsp;<b>FOLLOW(</b>T)={+, $, a, b}<br>  
&nbsp;&nbsp;<b>&nbsp;&nbsp;FOLLOW</b>(F)={+, $, a, b, *}<br>  
构造的SLR分析表如下:  
<center><img src="images/ex4.122.gif" width="553" height="274"></center><br>  
显然,此分析表无多重定义入口,所以此文法是SLR文法。<br>  
</td></tr></table>       
  
</body>       
</html>
<html><script language="JavaScript">

⌨️ 快捷键说明

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