三地址码语句的实现是什么?
三个地址代码语句使用了三种实现,如下所示 -
四倍
三元组
间接三元组
四倍
Quadruple 是一种结构,最多包含四个字段,即 operator、Argument 1、Argument 2 和 Result。
Operator | 论点 1 | Argument 2 | 结果 |
对于语句 a = b + c,四重表示将 + 放在运算符字段中,a 在参数 1 字段中,b 在参数 2 中,c 在结果字段中。
例如- 考虑语句
a = b + c * d
首先,将此语句转换为三地址代码
∴三个地址代码将是
t1 = c * d
t2 = b + t1
a = t2。
构建三地址代码后,它将更改为四重表示,如下所示 -
四人间
地点 | 运算符 | 参数 1 | 参数 2 | 结果 |
---|---|---|---|---|
(0) | * | c | d | t2 |
(1) | + | b | t1 | t1 |
(2) | = | t2 | A |
字段 arg 1、arg 2 和 Result 的内容是指向由这些条目表示的名称的符号表条目的指针。
三元组
这三地址代码表示包含三 (3) 个字段,即,一个用于运算符,两个用于参数(即,参数 1 和参数 2)
运算符 | 论点 1 | Argument 2 |
在此表示中,不使用临时变量。我们不使用临时变量,而是使用括号中的数字来表示指向符号表特定记录的指针。
例如,考虑语句
a = b + c * d
首先将其转换为三地址码
∴ t1 = c * d
t2 = b + t1
a = t2
这三个地址代码的三倍将是 -
三倍
地点 | 运算符 | 参数 1 | 参数 2 |
---|---|---|---|
(0) | * | C | d |
(1) | + | B | (0) |
(2) | = | A | (1) |
这里 (0) 表示指向结果 c * d 的指针,它可以在进一步的语句中使用,即当 c * d 与 b 相加时。此结果将保存在 (1) 的位置指针处。指针 (1) 在分配给 a 时将被进一步使用。
间接三元组
间接三元组表示使用一个额外的数组以所需的顺序列出指向三元组的指针。这称为间接三元组表示。
间接三重将是
在这种情况下,它只需要引用一个指针、(1)、(2),它们将分别进一步引用指针(11)、(12)、(13),然后是指针(11)、(12) , (13) 指向三元组,这就是为什么这种表示被称为间接三元组表示的原因。
以上是 三地址码语句的实现是什么? 的全部内容, 来源链接: utcz.com/z/363439.html