- 2
- 0
- 约1.06万字
- 约 44页
- 2018-10-19 发布于山东
- 举报
4.逻辑表达式的翻译
C语言中,逻辑表达式可出现在
(1)逻辑计算表达式,如x=(ab) (cd)
(2 )条件,如if ((ab) (cd)) x=0; else x=1;
逻辑表达式的作用有两个:(1)用作控制语句中的条件
式;(2 )用作逻辑赋值句中的逻辑计算表达式。
翻译方法及过程
分析逻辑表达式的书写格式
(ab) (cd) || !(a==c)
运算符号有:逻辑运算符和关系运算符
逻辑运算符 ! ||
逻辑运算符的优先级从高到低为! || ;和||都服从
左结合。
关系运算符号rop (有、=、=、=、等)
形如E1 rop E2,其中E1和E2是算术表达式,
各关系运算符的优先级都相同,并且高于所有逻辑运算
符,低于任何算术运算符。
根据运算符号的优先级,逻辑表达式的文法规则
可表示为:
1.BE-BE || BT
2.BE-BT
3.BT-BT BF
4.BT-BF
5.BF-!BF
6.BF- (BE)
7.BF-E rop E (E为表达式)
8.BF-i rop i
9.BF-i
(1)用作逻辑计算运算表达式的翻译
采用类似于算数表达式的语义动作定义方法
如(12) (34 )|| (53 )
每条文法的语义动作定义如下:
1)BE’→BE {BE’.val=BE.val}
2 )BE(1)→BE(2)||BT {BE(1).val=BE(2).val||BT.val}
3 )BE(1)→BT {BE(1).val=BT.val}
4 )BT(1)→BT(2)BF {BT(1).val=BT(2).valBF.val}
5)BT(1)→BF {BT(1).val=BF.val}
6 )BF→!BF {BF.val=!BF.val}
7 )BF→(BE) {BF.val=BE.val}
(2 )用作控制语句中条件表达式的翻译
其作用是用来选择下一个执行点
例1:if ((ab)(cd)) x=0; else x=1;
如果ab的条件成立,继续执行cd;如果cd成立才执
x=0 ,否则执行x=1 。如果ab的条件不成立,则转到执行
x=1 。
例2:while ((ab)||(cd)) x=1;
如果ab的条件成立,则转到执行循环体x=1 ;否则继续
执行cd;如果cd成立则转到执行循环体x=1 ,否则转
到执行循环语句的下一个语句。
翻译方法及过程
出现在控制语句中条件表达式要根据逻辑运算符
号进行分拆。
每一个关系比较表达式都有条件成立和条件不成
立的转向。
翻译方法:每个关系比较表达式都翻译出两个转
向指令,一个成立时转向——真出口(TC ),一
个不成立时转向——假出口(FC)。、
对于以下规则
7.BF-E rop E
8.BF-i rop i
9.BF-i
都产生两条指令
翻译方法
例if (ab )x=0; else x=1 ;
(ab)翻译为
(1) (j, a , b , ? )
(2) (j ,,,?)
8.BF-i1 rop i2 语义动作:
(1) (jrop, i1 , i2 , ? )真出口
(2) (j ,,,?)假出口
例if (c )x=0; else x=1 ;
(c)翻译为
(1) (jnz, c , , ? )
(2) (j ,,,?)
9.BF-i 语义动作:
(1) (jnz, i , , ? )真出口
(2) (j ,,,?)假出口
例if (e+fg+h )x=0; else x=1 ;
(e+fg+h)翻译为
(1) (+, e , f , t1 )
(2) (+
您可能关注的文档
最近下载
- 2026年开工第一课主题.ppt
- 普通纪念币防伪课件.pptx VIP
- ASTM A388A388M-2018钢锻件超声检验标准操作方法中文版.pdf VIP
- 艺考真题|2020年中传文史哲初试真题原卷放送(附答案).doc VIP
- 毛石混凝土挡土墙施工方案.docx
- 八年级英语上册全册课课练.doc VIP
- POEMS综合征课件完整版.ppt VIP
- NB-T11409-2023水电工程费用构成及概(估)算费用标准.docx VIP
- 2026年春季学期学校德育工作计划.docx VIP
- 深度解析(2026)《TBT 3474.2-2018机车车辆螺纹连接软管 第2部分:橡胶软管》.pptx VIP
原创力文档

文档评论(0)