Skip to content

Inter procedural program analysis with Soot and Heros

Eric Bodden edited this page Jul 9, 2020 · 2 revisions

Using the Heros framework, you can easily implement very efficient and precise inter-procedural program analyses in the IFDS/IDE frameworks.


Note: IFDS/IDE lets you implement - very efficiently - tabulation-based inter-procedural analyses that are also fully context sensitive and thus fully precise. There is a requirement, however: all flow functions you implement must distribute over the merge operator. Moreover, in IFDS this merge operator must be set union. For more details please read this paper:

The Secret Sauce in Efficient and Precise Static Analysis: The Beauty of Distributive, Summary-based Static Analyses (and How to Master Them) (Eric Bodden), In ACM SIGPLAN International Workshop on the State Of the Art in Java Program Analysis (SOAP 2018), pages 85–93, ISSTA ’18, ACM, 2018.

If your flow functions do not have this property, you may lose precision. In such cases, consider using the VASCO framework instead.


Clone this wiki locally