JavaDL: Automatically Incrementalizing Java Bug Pattern DetectionVirtual
Wed 20 Oct 2021 16:25 - 16:40 at Zurich C - Analysis Chair(s): Julian Dolby
Static checker frameworks support software developers by automatically
discovering bugs that fit general-purpose bug patterns. These frameworks ship
with hundreds of detectors for such patterns and allow developers to add custom
detectors for their own projects. However, existing frameworks generally
encode detectors in imperative specifications, with extensive details of not
only \emph{what} to detect but also \emph{how}. These details complicate
detector maintenance and evolution, and also interfere with the
framework's ability to change how detection is done, for instance, to make the
detectors incremental.
In this paper, we present \textsc{JavaDL}, a Datalog-based declarative specification
language for bug pattern detection in Java code. \textsc{JavaDL} seamlessly supports both
exhaustive and incremental evaluation from the same detector specification.
This specification allows developers to describe local detector components
via \emph{syntactic pattern matching}, and nonlocal (e.g., interprocedural)
reasoning via \emph{Datalog-style logical rules}.
We compare our approach against the well-established SpotBugs and Error Prone
tools by re-implementing several of their detectors in \textsc{JavaDL}. We find that
our implementations are substantially smaller and similarly effective at
detecting bugs on the Defects4J benchmark suite, and run with competitive
runtime performance. In our experiments, neither incremental nor exhaustive
analysis can consistently outperform the other, which
highlights the value of our ability to transparently switch execution modes.
We argue that our approach showcases the potential of \emph{clear-box static
checker frameworks} that constrain the bug detector specification language to
enable the framework to adapt and enhance the detectors.
Wed 20 OctDisplayed time zone: Central Time (US & Canada) change
07:40 - 09:00 | |||
07:40 15mTalk | Making Pointer Analysis More Precise by Unleashing the Power of Selective Context SensitivityVirtual OOPSLA Tian Tan Nanjing University, Yue Li Nanjing University, Xiaoxing Ma Nanjing University, Chang Xu Nanjing University, Yannis Smaragdakis University of Athens DOI | ||
07:55 15mTalk | Compacting Points-To Sets through Object ClusteringVirtual OOPSLA Mohamad Barbar University of Technology Sydney; CSIRO’s Data61, Yulei Sui University of New South Wales, Sydney DOI | ||
08:10 15mTalk | Program Analysis via Efficient Symbolic AbstractionVirtual OOPSLA Peisen Yao Hong Kong University of Science and Technology; Ant Group, Qingkai Shi Ant Group, Heqing Huang Hong Kong University of Science and Technology, Charles Zhang Hong Kong University of Science and Technology DOI | ||
08:25 15mTalk | JavaDL: Automatically Incrementalizing Java Bug Pattern DetectionVirtual OOPSLA Alexandru Dura Lund University, Christoph Reichenbach Lund University, Emma Söderberg Lund University DOI | ||
08:40 20mLive Q&A | Discussion, Questions and Answers OOPSLA |
15:40 - 17:00 | |||
15:40 15mTalk | Making Pointer Analysis More Precise by Unleashing the Power of Selective Context SensitivityVirtual OOPSLA Tian Tan Nanjing University, Yue Li Nanjing University, Xiaoxing Ma Nanjing University, Chang Xu Nanjing University, Yannis Smaragdakis University of Athens DOI | ||
15:55 15mTalk | Compacting Points-To Sets through Object ClusteringVirtual OOPSLA Mohamad Barbar University of Technology Sydney; CSIRO’s Data61, Yulei Sui University of New South Wales, Sydney DOI | ||
16:10 15mTalk | Program Analysis via Efficient Symbolic AbstractionVirtual OOPSLA Peisen Yao Hong Kong University of Science and Technology; Ant Group, Qingkai Shi Ant Group, Heqing Huang Hong Kong University of Science and Technology, Charles Zhang Hong Kong University of Science and Technology DOI | ||
16:25 15mTalk | JavaDL: Automatically Incrementalizing Java Bug Pattern DetectionVirtual OOPSLA Alexandru Dura Lund University, Christoph Reichenbach Lund University, Emma Söderberg Lund University DOI | ||
16:40 20mLive Q&A | Discussion, Questions and Answers OOPSLA |