中文

名称是否呼应语义?一项对 C++ 命名强制转换中使用的标识符的大规模研究

软件工程 2023-04-17 v2 信息论 编程语言 math.IT

摘要

开发者放宽对类型的限制,以便在其他类型上重用方法。虽然类型转换很普遍,但在像 C++ 这样的弱类型语言中,它们也极其宽松。源表达式被转换为新类型并赋值给新类型的目标变量的赋值操作,如果不谨慎执行,可能导致软件缺陷。在本文中,我们提出了一种基于信息论的方法来识别显式转换操作的不良实现。我们的方法使用条件熵来衡量源表达式和目标变量之间的一致性。我们从 Chromium 项目的 34 个组件中收集了转换操作,这些组件总计 2700 万行代码,并对此数据集进行随机均匀采样,创建了一个包含 271 个转换操作的人工标注数据集。对这 271 个转换操作进行信息论审查,达到了 81% 的峰值精确率和 90% 的召回率。我们还展示了对一些值得注意的显式转换进行深入调查的发现,其中两个在 Chromium 项目的近期版本中已被修复。

关键词

引用

@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}
}

备注

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