📄 2.2.2g.htm
字号:
<html>
<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link type="text/css" rel="stylesheet" href="../css/specification.css">
</head>
<BODY>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.2f.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.2h.htm'"></img></td>
</tr>
</table>
<br><br>
<table><tr><td>    </td>
<td class="content">
<p>
<font class="example">例2.3 </font>考虑一个文法G=({a,b},{S},S,P) <br>
    其中P: <br>
             S→aSb <br>
             S→ab <br>
</p>
<p>
这表示a,b是终结符号;S是非终结符号,而且S是开始符号;此文法的产生式集合P包括两个产生式。若应用第一个产生式n-1次,然后应用第二个产生式,我们有:
<table align=center width=300>
<tr><td>S</td><td> <img src="IMG/equal.gif"></img> aSb</td></tr>
<tr><td></td><td> <img src="IMG/equal.gif"></img> aaSbb </td></tr>
<tr><td></td><td> <img src="IMG/equal.gif"></img> a<sup>3</sup>Sb<sup>3</sup> </td></tr>
<tr><td></td><td>  …… </td></tr>
<tr><td></td><td> <img src="IMG/equal.gif"></img> a<sup>t</sup>Sb<sup>t</sup> (t=n-1) </td></tr>
<tr><td></td><td> <img src="IMG/equal.gif"></img> a<sup>n</sup>b<sup>n</sup> </td></tr>
</table>
</p>
<p>
进而,不难知道L(G)中的符号串仅为a<sup>n</sup>b<sup>n</sup>(n≥1)。因为每次使用第一个产生式进行推导时,S的个数都保持不变。但当使用第二个产生式后,句型中的S就不见了。因为两个产生式的左边都是S,故产生式应用的次序只能是使用第一个产生式S→aSb若干次,然后使用第二个产生式S→ab一次。因此有: <br>
<center> L(G)={a<sup>n</sup>b<sup>n</sup>|n≥1} </center>
</p>
</td></tr></table>
<br>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.2f.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.2h.htm'"></img></td>
</tr>
</table>
</BODY>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -