作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在阅读时,我遇到了“中级语言”和“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) 是大多数应用程序中使用的中间表示
编译器。它本质上是属于低端的通用汇编语言
中级 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;
关于compilation - 三地址码(TAC/3AC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3982112/
我是一名优秀的程序员,十分优秀!