Abstract
Static analysis tools help to detect programming errors but generate a large number of alarms. Repositioning of alarms is recently proposed technique to reduce the number of alarms by replacing a group of similar alarms with a small number of newly created representative alarms. However, the technique fails to replace a group of similar alarms with a fewer representative alarms mainly when the immediately enclosing conditional statements of the alarms are different and not nested. This limitation is due to conservative assumption that a conditional statement of an alarm may prevent the alarm from being an error. To address the limitation above, we introduce the notion of non-impacting control dependencies (NCDs). An NCD of an alarm is a transitive control dependency of the alarm’s program point, that does not affect whether the alarm is an error. We approximate the computation of NCDs based on the alarms that are similar, and then reposition the similar alarms by considering the effect of their NCDs. The NCD-based repositioning allows to merge more similar alarms together and represent them by a small number of representative alarms than the state-of-the-art repositioning technique. Thus, it can be expected to further reduce the number of alarms. To measure the reduction obtained, we evaluate the NCD-based repositioning using total 105,546 alarms generated on 16 open source C applications, 11 industry C applications, and 5 industry COBOL applications. The evaluation results indicate that, compared to the state-of-the-art repositioning technique, the NCD-based repositioning reduces the number of alarms respectively by up to 23.57%, 29.77%, and 36.09%. The median reductions are 9.02%, 17.18%, and 28.61%, respectively.
Original language | English |
---|---|
Title of host publication | Programming Languages and Systems |
Subtitle of host publication | 17th Asian Symposium, APLAS 2019, Nusa Dua, Bali, Indonesia, December 1–4, 2019, Proceedings |
Editors | Anthony Widjaja Lin |
Place of Publication | Cham |
Publisher | Springer |
Pages | 115-135 |
Number of pages | 21 |
ISBN (Electronic) | 978-3-030-34175-6 |
ISBN (Print) | 978-3-030-34174-9 |
DOIs | |
Publication status | Published - 18 Nov 2019 |
Event | 17th Asian Symposium on Programming Languages and Systems, (APLAS 2019) - Bali, Indonesia Duration: 1 Dec 2019 → 4 Dec 2019 Conference number: 17 https://conf.researchr.org/home/aplas-2019 |
Publication series
Name | Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) |
---|---|
Volume | 11893 LNCS |
ISSN (Print) | 0302-9743 |
ISSN (Electronic) | 1611-3349 |
Conference
Conference | 17th Asian Symposium on Programming Languages and Systems, (APLAS 2019) |
---|---|
Abbreviated title | APLAS2019 |
Country/Territory | Indonesia |
City | Bali |
Period | 1/12/19 → 4/12/19 |
Internet address |