Qilin: A New Framework for Supporting Fine-Grained Context-Sensitivity in Java Pointer AnalysisVCOOP 2022
Existing (whole-program) context-sensitive pointer analysis frameworks for Java, which were open-sourced over one decade ago, were designed and implemented to support only method-level context-sensitivity (where all the variables/objects in a method are qualified by a common context abstraction representing a context under which the method is analyzed). We introduce Qilin as a generalized (modern) alternative, which will be open-sourced soon on GitHub, to support the current research trend on exploring \textbf{fine-grained context-sensitivity} (including variable-level context-sensitivity where different variables/objects in a method can be analyzed under (i.e., qualified by) different context abstractions at the variable level), \textbf{precisely}, \textbf{efficiently}, and \textbf{modularly}. To meet these \textbf{four} design goals, Qilin is developed as an imperative framework (implemented in Java) consisting of a fine-grained pointer analysis kernel with parameterized context-sensitivity that supports on-the-fly call graph construction and exception analysis, solved iteratively based on a new carefully-crafted incremental worklist-based constraint solver, on top of its handlers for complex Java features.
We have evaluated Qilin extensively using a set of 12 representative Java programs (popularly used in the literature). For method-level context-sensitive analyses, we compare Qilin with Doop (a declarative framework that defines the state-of-the-art), Qilin yields logically the same precision but more efficiently (e.g., 2.4x faster for four typical baselines considered, on average). For fine-grained context-sensitive analyses (which are not currently supported by open-source Java pointer analysis frameworks such as Doop), we show that Qilin allows seven recent approaches to be instantiated effectively in our parameterized framework, requiring only an average of 50 LOC each.
Thu 23 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:00 - 16:30 | |||
15:00 30mTalk | Accumulation AnalysisVCOOP 2022 Research Papers Martin Kellogg University of Washington, Narges Shadab University of California at Riverside, Manu Sridharan University of California at Riverside, Michael D. Ernst University of Washington | ||
15:30 30mTalk | Qilin: A New Framework for Supporting Fine-Grained Context-Sensitivity in Java Pointer AnalysisVCOOP 2022 Research Papers | ||
16:00 30mTalk | Functional programming for distributed systems with XCVCOOP 2022ECOOP 2022 Research Papers Giorgio Audrito Università di Torino, Roberto Casadei University of Bologna, Italy, Ferruccio Damiani University of Turin, Guido Salvaneschi University of St. Gallen, Mirko Viroli Alma Mater Studiorum - Università di Bologna Pre-print |