第六章

2018-07-08  本文已影响0人  割麦子洁

属性语法】包含一个语法和一系列语义规则

中间代码】 目标代码的中间表示。

【编译中常用的中间代码】后缀表达式、树形表示、三元式、四元式

后缀表达式除去了原表达式中的括号,并将运算对象写在前面,运算符写在后面,因而称为后缀式。

用【栈】计算后缀表达式

第七章

【三元式】(OP,arg1, arg2)

其中OP是运算符,arg1,arg2分别是第一和第二两个运算对象。

特点: 三元式出现的顺序和语法成份的计值顺序相一致。

【间接三元式】

(1)间接三元式表: 用来存放各三元式本身。

(2)间接码表: 按执行各三元式的顺序,依次列出各三元式在三元式表中的位置。

【注意】 : 间接三元式表中不存放重复的三元式

【四元式】(OP,arg1, arg2, result)

result是编译程序为存放中间运算结果而临时引进的变量,常称为临时变量

三地址代码形式】result := arg1 OP arg2

三地址语句:语句中是三个量的赋值语句, 每个量占一个地址。

题型:【解】写出四元式以及四元式所对应的三地址序列【也不存放重复的】


【将布尔表达式表示为四元式】

布尔表达式是由布尔算符(∧、∨和非)施于布尔变量或关系表达式而成。


【运算符的优先级】

首先       * ,/,+ -, =

其次是     > , <  , >= , <=

最后是    非,∧,∨

相同优先级的从左到右写出


【目标代码】

题型:将三地址句子x = y + z翻译成目标代码

二地址指令

二地址指令: op 源,目的

MOV {将源移到目的中}

ADD {将源加到目的中}

SUB {在目的中减去源}

【代码优化原则】

上一篇下一篇

猜你喜欢

热点阅读