摘要
本发明公开一种面向Java程序分析的中间表示构建方法,对获取待处理的Java字节码进行单赋值形式变换得到单赋值Java字节码,基于单赋值Java字节码通过抽象解释的翻译算法构建无类型中间表示,将无类型中间表示基于Java类型检查规则构造类型约束和类型约束图,使用剪枝的格算法求解类型约束图得到有类型中间表示。本发明通过单赋值变换和基于剪枝的格算法,较好地利用了常见的字节码模式。基于抽象解释将基于栈式虚拟机的Java字节码转换为基于寄存器虚拟机的无类型三地址码中间表示,尽可能地避免了产生冗余语句。采用剪枝的格算法,能准确和快速地确定未知类型变量的类型,保证了类型推理结果是安全的。
技术关键词
面向Java程序
Java字节码
检查规则
语句
翻译算法
变量
表达式
计算机存储介质
元素
处理器通信
指令
存储器
节点
电子设备
冗余
网络
模式