Detecting Oxbow Code in Erlang Codebases with the Highest Degree of Certainty
This addresses the issue of project maintainability for Erlang developers by automating the detection of dead code, though it is incremental as it applies existing static analysis concepts to a specific domain.
The paper tackled the problem of detecting oxbow code (a form of dead code) in Erlang projects by formulating rules for high-accuracy identification and presenting an open-source static analyzer to automate detection and removal, contributing to improved code quality and maintainability.
The presence of source code that is no longer needed is a handicap to project maintainability. The larger and longer-lived the project, the higher the chances of accumulating dead code in its different forms. Manually detecting unused code is time-consuming, tedious, error-prone, and requires a great level of deep knowledge about the codebase. In this paper, we examine the kinds of dead code (specifically, oxbow code) that can appear in Erlang projects, and formulate rules to identify them with high accuracy. We also present an open-source static analyzer that implements these rules, allowing for the automatic detection and confident removal of oxbow code in Erlang codebases, actively contributing to increasing their quality and maintainability.