gpt4 book ai didi

compilation - 三地址码(TAC/3AC)

转载 作者:行者123 更新时间:2023-12-04 17:58:21 32 4
gpt4 key购买 nike

在阅读时,我遇到了“中级语言”和“3AC”这两个术语。

据我了解,IL 是源代码编译过程中的中间“步骤”。更具体地说,我正在阅读有关字节码(Java)和 C 的内容。

我解释它的方式(如果错了请纠正我)是;

Source Code 1 (ex. Lisp) -> Intermediate Language (C) -> Assembly Language -> Machine Code

Source Code 2 (ex. Java) -> Bytecode -> Java Virtual Machine



因此,基于此,我正在努力了解三个地址代码 (TAC/3AC) 在哪里发挥作用,以及它的用途。

最佳答案

三地址代码 (TAC) 是大多数应用程序中使用的中间表示
编译器。它本质上是属于低端的通用汇编语言
中级 IR。 2、3 或 4 地址代码的某些变体通常用作 IR,
因为它可以很好地映射到大多数汇编语言。

一条 TAC 指令最多可以有三个操作数。操作数可以是两个操作数
到一个二元算术运算符和第三个结果位置,或一个操作数
比较零和要分支到的第二个位置,依此类推。例如,下面的
顶部是算术表达式,底部是 TAC 的翻译
指示:

//Expresion
a = b * c + b * d;
//3AC
_t1 = b * c;
_t2 = b * d;
_t3 = _t1 + _t2;
a = _t3;

来源: http://web.archive.org/web/20151010192637/http://www.dound.com/courses/cs143/handouts/17-TAC-Examples.pdf

关于compilation - 三地址码(TAC/3AC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3982112/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com