Static Program Analysis in Datalog
Doop is a framework for Program Analysis of Java code. It utilizes the Datalog engine Souffle to run high-speed analyses on an Intermediate Code Representation. Existing analyses mainly deal with larger-scope Pointer Analysis, but not with local optimization possibilities. In this talk, I focus on the implementation of local static analyses like Constant Folding, Liveness and Available Expressions in Doop. I will give an introduction into the related frameworks, and point out benefits and limitations of Doop and Souffle regarding each analysis. Furthermore I will compare my results to existing tools for static code analysis and give an outlook whether Doop is suitable for local static analysis.