Soot (software)
From Wikipedia, the free encyclopedia
In static program analysis, Soot is a bytecode manipulation and optimization framework consisting of intermediate languages for Java. It has been developed by the Sable Research Group at McGill University. Soot is currently maintained by the Secure Software Engineering Group at Paderborn University.[1] Soot provides four intermediate representations for use through its API for other analysis programs to access and build upon:[2]
- Baf: a near bytecode representation.
- Jimple: a simplified version of Java source code that has a maximum of three components per statement.
- Shimple: an SSA variation of Jimple (similar to GIMPLE).
- Grimp: an aggregated version of Jimple suitable for decompilation and code inspection.
This article includes a list of general references, but it lacks sufficient corresponding inline citations. (October 2009) |
The current Soot software release also contains detailed program analyses that can be used out-of-the-box, such as context-sensitive flow-insensitive points-to analysis,[3] call graph analysis and domination analysis (answering the question "must event a follow event b?"). It also has a decompiler called dava.
Soot is free software available under the GNU Lesser General Public License (LGPL). In 2010, two research papers on Soot (Vallée-Rai et al. 1999 harvnb error: no target: CITEREFVallée-RaiCoGagnonHendren1999 (help) and Pominville et al. 2000) were selected as IBM CASCON First Decade High Impact Papers among 12 other papers from the 425 entries.[4]