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

📄 4.10.14.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 HTM
字号:
<html>
<head>
<title>4.14的解答</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.14</b></font></center><br>
</center>
<table><tr><td> </td>
<td class="content">
解:<br>
(1) 构造其拓广文法G'的产生式为   
<table align=center width=450 class="content">   
<tr><td>(0) S' → S</td><td>(1) S → A</td></tr>      
<tr><td>(2) A  → BA</td><td>(3) A → ε</td></tr>      
<tr><td>(4) B  → aB</td><td>(5) B → b</td></tr>      
</table>   
构造其LR(0)项目集规范族和goto函数(识别活前缀的DFA)如下:<br>   
I<sub>0</sub> = { [S'→·S, $], [S→·A, $], [A→·BA, $], [A→·, $],<br>
&nbsp;&nbsp;&nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;<b>&nbsp; [B→·aB, a/b/$], [B→·b, a/b/$]}   
<br>   
I<sub>1</sub> = {[S'→S·, $]}<br>   
I<sub>2</sub> = {[S→A·, $]}<br>   
I<sub>3</sub> = {[A→B·A, $], [A→·BA, $], [A→·, $],<br> 
&nbsp;&nbsp;&nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;<b>&nbsp;[B→·aB, a/b/$], [B→·b, a/b/$]}<br>   
I<sub>4</sub> = {[B→b·, a/b/$]}<br>   
I<sub>5</sub> = {[B→a·B, a/b/$], [B→·aB, a/b/$], <br>
&nbsp;&nbsp;&nbsp;<b>&nbsp;&nbsp;&nbsp;&nbsp;<b>&nbsp;[B→·b, a/b/$]}<br>   
I<sub>6</sub> = {[A→BA·, $]}<br>   
I<sub>7</sub> = {[B→aB·, a/b/$]}<br>   
<center><img src="images/ex4.141.gif"></center><br>   
该文法的LR(1)项目集规范族中没有冲突,所以该文法是LR(1)文法。<br>   
<br>   
(2)构造LR(1)分析表如下:<br>   
<center><img src="images/ex4.142.gif" ></center><br>   
以上分析表无多的定义入口,所以该文法为LR(1)文法。<br>   
<br>   
(3)对于输入串abab,其分析过程如下:   
<center><img src="images/ex4.143.gif" ></center><br>   
</td></tr></table>        
   
</body>        
</html>

⌨️ 快捷键说明

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