📄 4.10.15.htm
字号:
<html>
<head>
<title>4.15的解答</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.15</b></font></center><br>
</center>
<table><tr><td> </td>
<td class="content">
解:<br>
其拓广文法G':
<table align=center width=450 class="content">
<tr><td>(0) S' → S</td><td>(1) S → E</td></tr>
<tr><td>(2) E → E+T</td><td>(3) E → T</td></tr>
<tr><td>(4) T → (E)</td><td>(5) T → a</td></tr>
</table>
构造其LR(1)项目集规范族和goto函数(识别活前缀的DFA)如下:<br>
I<sub>0</sub> = {[S’→·S, $], [S→·E, $], [E→·E+T, $/+], [E→·T, $/+],<br>
[T→·(E), $/+], [T→·a, $/+]}
<br>
I<sub>1</sub> = {[S’→S·, $]}<br>
I<sub>2</sub> = {[S→E·, $], [E→E·+T, $/+]}<br>
I<sub>3</sub> = {[E→T·, $/+]}<br>
I<sub>4</sub> = {[T→(·E), $/+], [E→·E+T, )/+], [E→·T, )/+], <br>
[T→·(E), )/+], [T→·a, )/+]}<br>
I<sub>5</sub> = {[T→a·, $/+]}<br>
I<sub>6</sub> = {[E→E+·T, $/+], [T→·(E), $/+], [T→·a, $/+]}<br>
I<sub>7</sub> = {[T→(E·), $/+], [E→E·+T, )/+]}<br>
I<sub>8</sub> = {[E→T·, )/+]}<br>
I<sub>9</sub> = {[T→(·E), )/+}, [E→·E+T, )/+], [E→·T, )/+],<br>
[T→·(E), )/+], [T→·a, )/+]}<br>
I<sub>10</sub> = {[T→a·, )/+]}<br>
I<sub>11</sub> = {[E→E+T·, $/+]}<br>
I<sub>12</sub> = {[T→(E)·, $/+]}<br>
I<sub>13</sub> = {[E→E+·T, )/+], [T→·(E), )/+], [T→·a, )/+]}<br>
I<sub>14</sub> = {[T→(E·), )/+], [E→E·+T, )/+]}<br>
I<sub>15</sub> = {[E→E+T·, )/+]}<br>
I<sub>16</sub> = {[T→(E)·, )/+]}<br>
<center><img src="images/ex4.151.gif" width="388" height="324"></center><br>
合并同心的LR(1)项目集,得到LALR的项目集和转移函数如下:<br>
I<sub>0</sub> = {[S’→·S, $], [S→·E, $], [E→·E+T, $/+], [E→·T, $/+],<br>
[T→··(E), $/+], [T→·a, $/+]}<br>
I<sub>1</sub> = {[S’→S·, $]}<br>
I<sub>2</sub> = {[S→E·, $], [E→E·+T, $/+]}<br>
I<sub>3,8</sub> = {[E→T·, $/+/)]}<br>
I<sub>4,9</sub> = {[T→(·E), $/+/)], [E→·E+T, )/+], [E→·T, )/+], <br>
[T→·(E), )/+], [T→·a, )/+]}<br>
I<sub>5,10</sub> = {[T→a·, $/+/)]}<br>
I<sub>6,13</sub> = {[E→E+·T, $/+/)], [T→·(E), $/+/)], [T→·a, $/+/)]}<br>
I<sub>7,14</sub> = {[T→(E·), $/+/)], [E→E·+T, )/+]}<br>
I<sub>11,15</sub> = {[E→E+T·, $/+/)]}<br>
I<sub>12,16</sub> = {[T→(E) ·, $/+/)]}<br>
<center><img src="images/ex4.152.gif" width="448" height="284"></center><br>
LALR分析表如下:br>
<center><img src="images/ex4.153.gif" width="553" height="274"></center><br>
</td></tr></table>
</body>
</html>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -