Write a Blog >>
MSR 2018
Mon 28 - Tue 29 May 2018 Gothenburg, Sweden
co-located with * ICSE 2018 *
Mon 28 May 2018 14:17 - 14:34 at E3 room - Programming Practice Chair(s): Romain Robbes

Prior work has shown that extremely small code patterns, such as the conditional operator and implicit type conversion, can cause considerable misunderstanding in programmers. Until now, the real world impact of these patterns – known as ‘atoms of confusion’ – was only speculative. This work uses a corpus of 14 of the most popular and influential open source C and C++ projects to measure the prevalence and significance of these small confusing patterns. Our results show that the 15 known types of confusing micro patterns occur millions of times in programs like the Linux kernel and GCC, appearing on average once every 23 lines. We show there is a strong correlation between these confusing patterns and bug-ix commits as well as a tendency for confusing patterns to be commented. We also explore patterns at the project level showing the rate of security vulnerabilities is higher in projects with more atoms. Finally, we examine real code examples containing these atoms, including ones that were used to ind and ix bugs in our corpus. In total this work demonstrates that beyond simple misunderstanding in the lab setting, atoms of confusion are both prevalent – occurring often in real projects, and meaningful – being removed by bug-fix commits at an elevated rate.

Conference Day
Mon 28 May

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

14:00 - 15:30
Programming PracticeTechnical Papers at E3 room
Chair(s): Romain RobbesFree University of Bozen-Bolzano
14:00
17m
Full-paper
Understanding the Usage, Impact, and Adoption of Non-OSI Approved Licenses
Technical Papers
A: Rômulo Manciola Meloca UFRGS, A: Gustavo PintoUFPA, A: Leonardo Pontes Baiser , A: Marco Mattos , A: Ivanilton Polato , A: Igor WieseFederal University of Technology - Paraná (UTFPR), A: Daniel M. German
Pre-print
14:17
17m
Full-paper
Prevalence of Confusing Code in Software Projects - Atoms of Confusion in the Wild
Technical Papers
A: Dan Gopstein New York University, A: Hongwei Zhou , A: Phyllis Frankl , A: Justin Cappos
DOI Pre-print Media Attached
14:34
17m
Full-paper
How Swift Developers Handle Errors
Technical Papers
A: Nathan Cassee , A: Gustavo PintoUFPA, A: Fernando CastorUFPE, A: Alexander SerebrenikEindhoven University of Technology
Pre-print
14:51
17m
Full-paper
What are your Programming Language’s Energy-Delay Implications?
Technical Papers
A: Stefanos GeorgiouAthens University of Economics and Business, A: Maria KechagiaDelft University of Technology, A: Panos Louridas, A: Diomidis SpinellisAthens University of Economics and Business
DOI Pre-print
15:08
7m
Short-paper
Automatically Assessing Code Understandability Reanalyzed: Combined Metrics Matter
Technical Papers
A: Asher TrockmanUniversity of Evansville, A: Keenen Cates , A: Mark Mozina , A: Tuan Nguyen , A: Christian KästnerCarnegie Mellon University, A: Bogdan VasilescuCarnegie Mellon University
Pre-print Media Attached
15:15
15m
Other
Discussion phase
Technical Papers