注释代码-云上网络架构设计及解决方案

时间:2024-07-11 14:11:53
【文件属性】:

文件名称:注释代码-云上网络架构设计及解决方案

文件大小:1.67MB

文件格式:PDF

更新时间:2024-07-11 14:11:53

程序分析 软件测试 soot

3.7 注释代码 Soot 中的注释框架最初设计是为了支持利用 Java 类文件的属性对 Java 程序的优化。思想是给相关代码的位添加标签信息,虚拟机可以利用这些 标签进行一些优化,例如:除去多余的数组范围的检查。这个框架(在 soot.tagkit 包中)由 4 个主要的概念组成:Host、Tag、Attribute 和 TagAggregator。 Host 是任何能够支持和处理标记的对象。Soot 中的 SootClass、 SootField、SootMethod、Body、Unit、Value 和 ValueBox 都实现了这个接口。 Tag 是任何能够加标签到 host 上的对象。这是连接键值对到 host 上的 一种非常普通的机制。 Attribute 是 tag 概念的一个扩展。能够输出到类文件的所有事物都是 Attribute。特别的任何一个加标签到一个类、一个域、一个方法或者一个体 上的标记都必须实现这个接口。Attribute 有意要映射到类文件中的属性,又 因为 Soot 利用一个叫做 Jasmin 的工具输出字节码,所以任何将要输出类文 件的都必须继承 JasminAttribute。CodeAttribute 就是 Soot 中的一个这样的 实现。 TagAggregator 是收集一些类型的标签和生成输出到类文件的新的属性 的 BodyTransform(在 3.7.1 节中),例如:单一的单元可以被变换成几个字 节码指令,因此 aggregator 必须决定任何在那个单元上的注释应该涉及到哪 一条指令。Soot 为它内置的标记提供了好几种 aggregator,如 FirstTagAggregator 联合一个标签和被它标记的第一条指令。一般来说,如


网友评论