Skip to content
Kadiray Karakaya edited this page Nov 9, 2022 · 10 revisions

The purpose of the SootUp project is to make Soot future-proof. The focus of this project lies on restructuring Soot away from a framework that makes heavy use of singletons, towards a lighter library that can easily be included in other projects. To speed up the execution time, an additional important aspect is the parallelization of the execution of analysis algorithms.

SootUp will consist of three parts, as shown in the following figure.

The core part of SootUp is the SootUp library. It converts Java bytecode as well as Java source code into an extended version of the Jimple intermediate representation as a base for analysis algorithms. The extensions support detailed mapping of the IR back to source code positions that record precise start and end line and column numbers; while Java bytecode may not have such detail, it is readily available in source front ends. The library is published as Maven project to be included in other software projects.

The other parts make use of the SootUp library. The console application allows the execution of code analysis on the command line, and the LSP plug-in JimpleLSP allows the integration of SootUp into development environments, such as Eclipse, IntelliJ IDEA, and many others supporting LSP.

This GitHub repository contains the SootUp library. The other parts are developed in independent repositories.