在Soot的下载页面: 中我们可以看到,Soot实际上是依赖于两个框架:Jasmin和Polyglot。对于这两个框架(或软件),我之前不是特别了解,但是在很多地方都可以看到Polyglot,例如,(The AspectBench Compiler for AspectJ)就是基于Soot和Polyglot的(怎么这些框架还循环调用?)
今天抽了些时间简单搜索了一下,找到了上面两个框架的主页,了解到:
前者最早是基于这本书:Jon Meyer. Java Virtual Machine. O'Reilly Associates, 1st Edition March 1997. ISBN 978-1-56592-194-8,为了让读者更好理解JVM,设计的教程性质的软件,其主页是: 这里我也不多做解释,大家可以自行到主页参考。
后者是Cornell(康奈尔大学)计算机系的一个研究项目,其主页在: 大家也可以自行参考。
准备这两天再看看 基于Clara的typestate analysis,似乎Clara也用到了Soot和Polyglot,看来,Polyglot也是应用非常广泛的一个框架,应该好好学习下。
PS:今天看到McGill大学的开发的软件中还包括了这样一个Java反编译软件,这个反编译软件是网上流传的3大反编译软件之一(可参考: ),顿时觉得Sable实验室的实力还是非常强的,而且他们对研究项目的坚持和执着,非常值得我们学习。)