其他分享
首页 > 其他分享> > Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 02 Intermediate Representation

Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 02 Intermediate Representation

作者:互联网

程序编译过程

IR

AST与IR的区别

3-Address Code(3AC)

特点:一条指令中最多出现3个地址,右值只能有一个、
这里Address可以是:

  1. Variable name: x, y
  2. Constant: 3
  3. Compiler-generated temporary: t1, t2
    如果有类似于x = 1 + 2 + 3的语句,就需要改为t1 = 1 + 2; x = t1 + 3;

Java Static Analysis Framework-Soot

IR: Jimple
https://github.com/soot-oss/soot

SSA

相当于是3AC Code+每个赋值都为新的变量
e.g:

对于这种情况下,translator就不明白x到底应该对应哪个分支的x,此时就引入phi-function。

标签:02,Code,Address,3AC,IR,t1,THUDBFuzz,Intermediate,soot
来源: https://www.cnblogs.com/xuesu/p/14235128.html