MQP:More on Soot
Overview
Soot is a useful tool for static analysis mention in the static analysis tools section. Some of its features are covered in more detail here.
What Soot Does
Soot takes Java source code, bytecode, or classfiles as input and converts them into different representations or models of the code. These representations simplify the process of performing many tasks, including several types of static analysis. For this project in particular, we will be especially interested in Soot's ability to make call graphs and operate on them. Some of the other types of static analysis that Soot facilitates may also factor in to this project.
Intermediate Representations
There are four different models that Soot uses for representing Java Code, each with different uses. We're still learning what each of these does exactly (working from http://www.brics.dk/SootGuide/).
- Baf - This representation allows for inspection of Java bytecode as "stack code." Still learning about this and what it means.