English

Do Names Echo Semantics? A Large-Scale Study of Identifiers Used in C++'s Named Casts

Software Engineering 2023-04-17 v2 Information Theory Programming Languages math.IT

Abstract

Developers relax restrictions on a type to reuse methods with other types. While type casts are prevalent, in weakly typed languages such as C++, they are also extremely permissive. Assignments where a source expression is cast into a new type and assigned to a target variable of the new type, can lead to software bugs if performed without care. In this paper, we propose an information-theoretic approach to identify poor implementations of explicit cast operations. Our approach measures accord between the source expression and the target variable using conditional entropy. We collect casts from 34 components of the Chromium project, which collectively account for 27MLOC and random-uniformly sample this dataset to create a manually labelled dataset of 271 casts. Information-theoretic vetting of these 271 casts achieves a peak precision of 81% and a recall of 90%. We additionally present the findings of an in-depth investigation of notable explicit casts, two of which were fixed in recent releases of the Chromium project.

Keywords

Cite

@article{arxiv.2111.01577,
  title  = {Do Names Echo Semantics? A Large-Scale Study of Identifiers Used in C++'s Named Casts},
  author = {Constantin Cezar Petrescu and Sam Smith and Rafail Giavrimis and Santanu Kumar Dash},
  journal= {arXiv preprint arXiv:2111.01577},
  year   = {2023}
}

Comments

The manuscript has 27 pages and it contains 4 Figures, 18 Listings and 4 Tables. The preprint has been accepted at Journal of Systems and Software from Elsevier

R2 v1 2026-06-24T07:22:35.384Z