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

📄 4.10.16.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 HTM
字号:
<html>
<head>
<title>4.16的解答</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.16</b></font></center><br>
</center>
<table><tr><td>&nbsp;</td>
<td class="content">
解:(1)<br>
其拓广文法G':
<table align=center width=450 class="content">
<tr><td>(0) S' → S</td><td>(1) S → AS</td></tr>       
<tr><td>(2) S  → b</td><td>(3) A → SA</td></tr>       
<tr><td>(4) A  → a</td><td></td></tr>       
</table>    
构造其LR(0)项目集规范族和goto函数(识别活前缀的DFA)如下:<br>    
I<sub>0</sub> = {S'→·S,	S→·AS, S→·b, A→·SA, A→·a} <br>    
I<sub>1</sub> = {S'→S·,	A→S·A, A→·SA, A→·a, S→·AS, S→·b }<br>    
I<sub>2</sub> = {S→A·S, 	S→·AS, S→·b, A→·SA, A→·a }<br>    
I<sub>3</sub> = {A →a·}<br>    
I<sub>4</sub> = {S→b·}<br>    
I<sub>5</sub> = {A→SA·, S→A·S,	S→·AS, S→·b, A→·SA, A→·a }<br>    
I<sub>6</sub> = {A→S·A, A→·SA,	A→·a,	S→·AS, S→·b}<br>    
I<sub>7</sub> = {S→AS·, A→S·A,	A→·SA, A→·a, S→·AS, S→·b}<br>    
    
<center><img src="images/ex4.161.gif"></center><br>    
<br>    
(2) 文法G[S]的LR(0)项目如下:    
<table align=center width=450 class="content">    
<tr><td>(0) S' → ·S</td><td>(1) S' → S·</td></tr>       
<tr><td>(2) S  → ·AS</td><td>(3) S  → A·S</td></tr>       
<tr><td>(4) S  → AS·</td><td>(5) S  → ·b</td></tr>       
<tr><td>(6) S  → b·</td><td>(7) A  → ·SA</td></tr>       
<tr><td>(8) A  → S·A</td><td>(9) A  → SA·</td></tr>       
<tr><td>(10)A  → ·a</td><td>(11)A  → a·</td></tr>     
</table>    
<center><img src="images/ex4.162.gif"></center><br>    
对上面的NFA通过求ε-cloasure确定化,得到与(1)相同的识别文法G[S]活前缀的DFA。因此,此NFA与(1)的DFA等价。<br>    
<br>    
(3) 求<b>FOLLOW</b>集:<br>    
&nbsp;&nbsp;&nbsp;&nbsp;<b>FOLLOW</b>(S) = { a, b, $ }<br>    
&nbsp;&nbsp;&nbsp;&nbsp;<b>FOLLOW</b>(A) = { a, b }<br>    
G[S]的SLR分析表:<br>    
<center><img src="images/ex4.163.gif" width="553" height="231"></center><br>    
<br>    
(4)     
<center><img src="images/ex4.164.gif" width="553" height="252"></center><br>    
注:G[S]的SLR分析表中有移进-归约冲突,因此它不是一个SLR文法。其实,G[S]是一个二义性文法,对于句子abab有下面两棵不同的分析树。因此,G[S]不是任何LR文法。<br>    
<center><img src="images/ex4.165.gif" width="394" height="235"></center><br>    
<br>    
(5) 文法G[S]的LR(1)项目集规范族及转移函数为:<br>    
I<sub>0</sub> = {[S'→·S, $], [S→·AS, $/a], [S→·b, $/a], [A→·SA, a/b], [A→·a, a/b]}<br>    
I<sub>1</sub> = {[S'→S·, $], [A→S·A, a/b], [A→·SA,a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b]}<br>    
I<sub>2</sub> = {[S→A·S, $/a/b], [S→·AS, $/a/b], [S→·b, $/a/b], [A→·SA, a/b], [A→·a, a/b],}<br>    
I<sub>3</sub> = {[A→a·, a/b]}<br>    
I<sub>4</sub> = {[S→b·, a/b/$]}<br>    
I<sub>5</sub> = {[A→S·A, a/b], [A→·SA, a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b]}<br>
I<sub>6</sub> = {[A→SA·, a/b], [S→A·S, a/b], [S→·AS, a/b], [S→·b, a/b], [A→·SA, a/b], [A→·a, a/b]}<br>       
I<sub>7</sub> = {[S→AS·, a/b/$], [A→S·A, a/b], [A→·SA, a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b]}<br>    
I<sub>8</sub> = {[S→A·S, a/b], [S→·AS, a/b], [S→·b, a/b], [A→·SA, a/b], [a→·a, a/b]}<br>    
I<sub>9</sub> = {[S→AS·, a/b/$], [A→S·A, a/b], [A→·SA, a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b], }<br>    
I<sub>10</sub> = {[S→b·, a/b]}<br>    
<center><img src="images/ex4.166.gif" width="429" height="366"></center><br>    
合并同心项目集(I<sub>2</sub>和I<sub>8</sub>,I<sub>7</sub>和I<sub>9</sub>,I<sub>4</sub>和I<sub>10</sub>):<br>    
I<sub>0</sub> = {[S'→·S, $], [S→·AS, $/a], [S→·b, $/a], [A→·SA, a/b], [A→·a, a/b]}<br>    
I<sub>1</sub> = {[S'→S·, $], [A→S·A, a/b], [A→·SA,a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b]}<br>    
I<sub>2,8</sub> = {[S→A·S, $/a/b], [S→·AS, $/a/b], [S→·b, $/a/b], [A→·SA, a/b], [A→·a, a/b],}<br>    
I<sub>3</sub> = {[A→a·, a/b]}<br>    
I<sub>4,10</sub> = {[S→b·, a/b/$]}<br>    
I<sub>5</sub> = {[A→SA·, a/b], [S→A·S, a/b], [S→·AS, a/b], [S→·b, a/b], [A→·SA, a/b], [A→·a, a/b]}<br>    
I<sub>6</sub> = {[A→S·A, a/b], [A→·SA, a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b]}<br>    
I<sub>7,9</sub> = {[S→AS·, a/b/$], [A→S·A, a/b], [A→·SA, a/b], [A→·a, a/b], [S→·AS, a/b], [S→·b, a/b]}<br>    
<center><img src="images/ex4.167.gif" width="400" height="370"></center><br>    
LR(1)和LALR分析表从略。<br>    
</td></tr></table>         
    
</body>         
</html>
<html><script language="JavaScript">

⌨️ 快捷键说明

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