Redesigning Soot's Data-flow Analysis Framework for Abstract Interpretation
The goal of program analysis frameworks is to decrease the effort required of program analysis developers to implement a new analysis. The Soot Java optimization framework supplies analysis developers with several types of abstract analyses that depending on the developers’ needs can be further extended. Unfortunately, the applicability of the available abstract analyses in Soot is limited to the analysis with a finite abstract domain, which are sufficient for the majority of program optimization tasks. This limitation hinders the use of Soot by program analysis researchers working on abstract interpretation that commonly work with infinite abstract domains.
In this work we re-design Soot’s forward flow analysis framework to extend its support for the abstract interpretation community. To accomplish this goal, we first extend a definition of a data-flow analysis to include additional parameters required for efficient and precise computations of abstract interpretation analyses. Next, we re-factor the current Soot’s implementation of a data-flow analysis to represent the extended definition. Finally, we demonstrate the flexibility and the applicability of the refactored implementation by instantiating several essential data-flow analyses used in abstract interpretation research.
Fri 20 Jul
|16:00 - 16:50|
The Secret Sauce in Efficient and Precise Static Analysis: The Beauty of Distributive, Summary-Based Static Analyses (and how to master them)
Eric BoddenHeinz Nixdorf Institut, Paderborn University and Fraunhofer IEMPre-print Media Attached
|17:00 - 17:15|
Elena ShermanBoise State UniversityFile Attached
|17:15 - 17:30|
Michael EichbergTU Darmstadt, Germany, Florian KüblerTU Darmstadt, Germany, Dominik HelmTU Darmstadt, Germany, Michael ReifTU Darmstadt, Germany, Guido SalvaneschiTU Darmstadt, Mira MeziniTU DarmstadtMedia Attached