📄 2.2.1b.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.1.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.1c.htm'"></img></td>
</tr>
</table>
<br><br>
<table><tr><td>    </td>
<td class="content">
<p>
如前所述,图2.1表明<句子>是由<主语>后随<谓语>组合成的。为了能机械地进行这样的分解,我们必须给出一些形式的精确的规则,用以表明句子的结构。如果我们用符号“→”(或“::=”)表示“定义为”(或“由...组合成的”),用符号“|”表示“或”,那么,我们可使用这些符号描述规则。在此例中所需要的全部规则如下:
<table align=center width=350>
<tr><td><句子> → <主语><谓语></td><td>(1)</td></tr>
<tr><td><主语> → <冠词><形容词><名词></td><td>(2)</td></tr>
<tr><td><冠词> → the</td><td>(3)</td></tr>
<tr><td><形容词> → grey</td><td>(4)</td></tr>
<tr><td><谓语> → <动词><直接宾语></td><td>(5)</td></tr>
<tr><td><动词> → <助动词><动词原形></td><td>(6)</td></tr>
<tr><td><助动词> → will</td><td>(7)</td></tr>
<tr><td><动词原形> → eat</td><td>(8)</td></tr>
<tr><td><直接宾语> → <冠词><名词></td><td>(9)</td></tr>
<tr><td><名词> → wolf</td><td>(10)</td></tr>
<tr><td><名词> → goat</td><td>(11)</td></tr>
</table>
而后面的两个规则可以写在一起:
<center><名词> → wolf |goat </center>
规则(1)读作:<句子> 是由<主语>后随<谓语>组合而成的,或读作:<句子>定义为<主语>后随<谓语> 。规则(2)则读作:<主语>是由<冠词> 后随<形容词>再后随<名词> 组合而成,等等。
<p>
我们把描述语言的语法结构的形式规则称为文法。上述十一个规则,可以说是构成了一个小型文法。让我们仔细分析一下这个文法。此文法包括四个组成部分:<br>
    1.<font class="emphasize2">一组终结符号</font>。这里包括the,grey,wolf,will,eat和goat等六个字。<br>
    2.<font class="emphasize2">一组非终结符号</font>。非终结符号用来代表语法单位。这里包括<句子> 、<主语> 、<冠词>、<形容词>、<谓词>、<动词>、<助动词>、<动词原形>、<直接宾语>和<名词>等十个语法单位。<br>
    3.<font class="emphasize2">一个开始符号</font>。开始符号是一个特殊的非终结符号。这里,<句子>是开始符号。<br>
    4.<font class="emphasize2">一组规则(也称产生式或产生规则)</font>。这里共包括十一个规则。
</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.1.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.1c.htm'"></img></td>
</tr>
</table>
</BODY>
</html>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -