Litcius/Paper detail

SHARP: fast incremental context-sensitive pointer analysis for Java

Bozhen Liu, Jeff Huang

2022Proceedings of the ACM on Programming Languages22 citationsDOIOpen Access PDF

Abstract

We present SHARP, an incremental context-sensitive pointer analysis algorithm that scales to real-world large complex Java programs and can also be efficiently parallelized. To our knowledge, SHARP is the first algorithm to tackle context-sensitivity in the state-of-the-art incremental pointer analysis (with regards to code modifications including both statement additions and deletions), which applies to both k-CFA and k-obj. To achieve it, SHARP tackles several technical challenges: soundness, redundant computations, and parallelism to improve scalability without losing precision. We conduct an extensive empirical evaluation of SHARP on large and popular Java projects and their code commits, showing impressive performance improvement: our incremental algorithm only requires on average 31 seconds to handle a real-world code commit for k-CFA and k-obj, which has comparable performance to the state-of-the-art incremental context-insensitive pointer analysis. Our parallelization further improves the performance and enables SHARP to finish within 18 seconds per code commit on average on an eight-core machine.

Topics & Concepts

Computer sciencePointer analysisCommitJavaParallel computingPointer (user interface)Programming languageBytecodeScalabilityCall graphJava concurrencyJava bytecodeAlgorithmJava annotationStatic analysisOperating systemReal time JavaArtificial intelligenceDatabaseSoftware Testing and Debugging TechniquesAdvanced Malware Detection TechniquesParallel Computing and Optimization Techniques