📄 2.5.3.htm
字号:
<html>
<head>
<title>2.3的解答</title>
</head>
<body background="../images/background.gif">
<center><font class="title2"><b>练习2.3</b></font></center><br>
解答:<br>
(a) 终结符号为:{<b>or</b>,<b>and</b>,<b>not</b>,(,),<b>true</b>,<b>false</b>}<br>
    非终结符号为:{bexpr,bterm,bfactor}<br>
    开始符号为:bexpr<br>
(b) 句子<b>not(true or false)</b>的分析树为:<br>
<center><img src="IMG/2.5.3-1.gif"></center><br>
(c) 用归纳法说明如下:
<table border=0 width=100%>
<tr><td valign=top>(1)</td><td>
不含运算的布尔表达式,常数<b>true</b>和<b>false</b>由此文法产生:<br>
bexpr => bterm => bfactor => <b>true</b><br>
bexpr => bterm => bfactor => <b>false</b><br>
</td></tr>
<tr><td valign=top>(2)</td><td>
设结论对于少于n(n≥1)个运算的布尔表达式成立,即若be<sub>1</sub>和be<sub>2</sub>是含有少于n个运算的布尔表达式,则有:bexpr<img src="IMG/EQUALADD.gif">be<sub>1</sub>,bexpr<img src="IMG/EQUALADD.gif">be<sub>2</sub>。
</td></tr>
<tr><td valign=top>(3)</td><td>
对于含有n个运算的布尔表达式,可表示成下面三种形式:<br>
(a) (be<sub>1</sub>) <b>or</b> (be<sub>2</sub>)<br>
(b) (be<sub>1</sub>) <b>and</b> (be<sub>2</sub>)<br>
(c) <b>not</b> (be<sub>1</sub>)<br>
对于(a):bexpr => bexpr <b>or</b> bterm<br>
=> bterm <b>or</b> bterm => bfactor <b>or</b> bterm<br>
=> (bexpr) <b>or</b> bterm <img src="IMG/EQUALADD.gif"> (be<sub>1</sub>) <b>or</b> bterm<br>
=> (be<sub>1</sub>) <b>or</b> bfactor => (be<sub>1</sub>) <b>or</b> (bexpr)<br>
<img src="IMG/EQUALADD.gif"> (be<sub>1</sub>) <b>or</b> (be<sub>2</sub>)<br>
同理,有:<br>
    bexpr <img src="IMG/EQUALADD.gif"> (be<sub>1</sub>) <b>and</b> (be<sub>2</sub>)<br>
    bexpr <img src="IMG/EQUALADD.gif"> <b>not</b> (be<sub>1</sub>)<br>
</td></tr>
<tr><td></td><td>综上所述,此文法所产生的语言是全体布尔表达式。</td></tr>
</table>
</body>
<html>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -