A Study of Single Statement Bugs Involving Dynamic Language Features
Li Sui, Shawn Rasheed, Amjed Tahir, Jens Dietrich

TL;DR
This paper investigates the impact of dynamic language features on single statement bugs in Java, quantifying error-proneness and identifying common bug patterns to aid developers and tool designers.
Contribution
It provides an empirical analysis of how dynamic features influence bug occurrence, specifically identifying prevalent bug patterns in Java programs.
Findings
139 bug instances found in 2,024 projects
Top bug patterns include Wrong Function Name, Same Function More Args, Change Identifier Used
Dynamic features increase error-proneness and complicate bug detection
Abstract
Dynamic language features are widely available in programming languages to implement functionality that can adapt to multiple usage contexts, enabling reuse. Functionality such as data binding , object-relational mapping and user interface builders can be heavily dependent on these features. However, their use has risks and downsides as they affect the soundness of static analyses and techniques that rely on such analyses (such as bug detection and automated program repair). They can also make software more error-prone due to potential difficulties in understanding reflective code, loss of compile-time safety and incorrect API usage. In this paper, we set out to quantify some of the effects of using dynamic language features in Java programs-that is, the error-proneness of using those features with respect to a particular type of bug known as single statement bugs. By mining 2,024…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
