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

📄 2.5.3.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 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>
&nbsp &nbsp 非终结符号为:{bexpr,bterm,bfactor}<br>
&nbsp &nbsp 开始符号为: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>
&nbsp &nbsp bexpr <img src="IMG/EQUALADD.gif"> (be<sub>1</sub>) <b>and</b> (be<sub>2</sub>)<br>
&nbsp &nbsp 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 + -