How Do Programmers Express High-Level Concepts using Primitive Data Types?
How Do Programmers Express High-Level Concepts using Primitive Data Types?
复制标题
DOI:
10.1109/apsec53868.2021.00043
复制
发表时间:
2021-12
期刊:
影响因子:
--
通讯作者:
Yusuke Shinyama;Yoshitaka Arahori;K. Gondow
中科院分区:
文献类型:
--
作者:
Yusuke Shinyama;Yoshitaka Arahori;K. Gondow
We investigated how programmers express high-level concepts such as path names and coordinates using primitive data types. While relying too much on primitive data types is sometimes criticized as a bad smell, it is still a common practice among programmers. We propose a novel way to accurately identify expressions for certain predefined concepts by examining API calls. We defined twelve conceptual types used in the Java Standard API. We then obtained expressions for each conceptual type from 26 open source projects. Based on the expressions obtained, we trained a decision tree-based classifier. It achieved 83 % F -score for correctly predicting the conceptual type for a given expression. Our result indicates that it is possible to infer a conceptual type from a source code reasonably well once enough examples are given. The obtained classifier can be used for potential bug detection, test case generation and documentation.