布尔表达式的翻译

布尔表达式的翻译

ID:42250416

大小:71.00 KB

页数:17页

时间:2019-09-11

布尔表达式的翻译_第1页
布尔表达式的翻译_第2页
布尔表达式的翻译_第3页
布尔表达式的翻译_第4页
布尔表达式的翻译_第5页
资源描述:

《布尔表达式的翻译》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Chapter5.5布尔表达式的翻译1.概述布尔表达式是布尔运算量和逻辑运算符按一定语法规则组成的式子。逻辑运算符通常有∧、∨、﹃三种(在某些语言中,还有≡(等价)及→(蕴含)等等);逻辑运算对象可以是逻辑值(True或False)、布尔变量、关系表达式以及由括号括起来的布尔表达式。不论是布尔变量还是布尔表达式,都只能取逻辑值True或False。在计算机内通常用1(或非零整数)表示真值(True),用0表示假值(False)。关系表达式是形如E1RopE2的式子,其中E1和E2为简单算术表达式,Rop为关系运算符(<,>,=,<=,>=,<>)。若E1和E2之值使该关系式成立,则此关系表达式

2、之值为True,否则为False。2.布尔表达式的语义及作用布尔表达式的语义在于指明计算一个逻辑值的规则.布尔表达式在程序设计语言中有两个基本的作用:一是在某些控制语句中作为实现控制转移的条件;另一个则是用于计算逻辑值本身。约定:各类运算符的优先顺序(由高至低)如下:⒈括号⒉算术运算符*、/+、-⒊关系运算符<、<=、=、>、>=、<>⒋逻辑运算符┒∧∨3.布尔表达式的等价解释-求值角度为了方便起见,下面我们仅讨论由文法E→E∧E

3、E∨E

4、┑E

5、(E)

6、I

7、iRopi(5.1)1)可采用类似算术表达式的方式来进行。例如,对于布尔表达式A∨B∧C,可翻译为:(∧,B,C,T1)(∨,A,T1,T

8、2)3.布尔表达式的等价解释-过程角度但是,对于一个布尔表达式而言,我们的目的仅仅是为了判定它的真假值。因此,有时只需计算它的一个子表达式,便能确定整个布尔表达式的真假值。例如,对于A∨B,只要知道A为真,则无论B取何值,表达式的结果一定为真。可见,对于三种常见逻辑运算,可作如下等价的解释:A∧B(A)?B:0(5.2)A∨B(A)?1:B(5.3)﹃A(A)?0:1(5.4)4.布尔表达式的出口对于布尔表达式A∨(B∧(┑C∨D)),其等价的表述是A?1:(B?((C?0:1)?1:D):0)显然,采用此种结构可产生更为有效的中间代码。这里需假定原布尔表达式的计算过程中不含有任何的副作用

9、。在上式的计算中,根据A、B、C、D的取值不同,计算的结果以及运算的终止点亦不同。例如,当A=1(真)时,结果为1且终止于左边第一个‘1’处。这样终止的点我们称为该布尔表达式的出口,同时,把使布尔表达式取值为真的出口称为真出口,反之称为假出口。对一个布尔表达式而言,它至少有一个真出口和一个假出口(当然可以有多个)。在用于控制流程的布尔表达式E的计算中,这些出口分别指出当E值为真和假时,控制所应转向的目标(即某一四元式的序号)。5.控制语句中的布尔表达式ifEthenS1elseS2或whileEdoSTE的代码S1的代码S2的代码E的代码S的代码TFF(a)if语句(b)while语句6.布尔

10、表达式真假值的确定一个布尔表达式E的真假值的确定,是在语法翻译过程中,根据(5.2)-(5.4)等价解释式逐步进行的。例如,对于布尔表达式E=E(1)∨E(2)若E(1)为真,则E必为真,故E(1)的真出口必是E的真出口(之一);若E(1)为假,则E的真假值取决于E(2)的真假值,此时,需对E(2)进行计算,由此可见,E(1)的假出口应为E(2)对应的四元式的序号(E(2)的入口),同时,E(2)的真、假出口也是E的真、假出口。类似地,可确定E(1)∧E(2)、﹃E及更复杂的表达式的真、假出口。7.条件语句的翻译结果在设计布尔表达式翻译算法(即编写语义动作)时,可定义和使用如下三类四元式:(j

11、nz,A1,,p)当A1为真(非零)时,转向第p四元式;(jrop,A1,A2,p)当关系A1ropA2成立时,转向第p四元式;(j,,,p)无条件转向第p四元式例如,对于条件语句ifA∨B

12、在自底向上的语法制导翻译时(或者说,在S-属性翻译文法中),在产生一个(无)条件转移四元式时,它所要转向的那个四元式有时尚未产生,故无法立即产生一个完全的控制转移四元式。例如,在上例中,在产生第一个四元式时,由于语句S1的中间代码尚未产生,即A的真出口确切位置并不知道,故此时只能产生一个空缺转移目标的四元式(jnz,A,-,0),并将此四元式的序号(即1)作为语义信息存起来,待开始翻译S1时,再将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。