Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs

Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs
复制标题

DOI:
10.1007/s10664-023-10328-5
复制
发表时间:
2023-06
影响因子:
4.1
通讯作者:
A. Rahman;Dibyendu Brinto Bose;Raunak Shakya;Rahul Pandita
A. Rahman;Dibyendu Brinto Bose;Raunak Shakya;Rahul Pandita
中科院分区:
计算机科学2区
文献类型:
--
作者:
A. Rahman;Dibyendu Brinto Bose;Raunak Shakya;Rahul Pandita

文献摘要

相似文献

Julia已经成为开发科学软件的流行编程语言,部分原因是它的灵活语法类似于脚本语言,同时保持了编译语言的执行速度。与任何编程语言类似,Julia程序也容易受到缺陷的影响。然而,朱莉娅计划中的缺陷的系统表征仍然没有得到充分的探索。对Julia程序中缺陷的系统分析将作为研究人员和工具师傅构建开发工具以提高Julia程序质量的起点。为此,我们通过挖掘从112个开源Julia项目中收集的30,494个提交和3,038个问题报告,对Julia项目中出现的742个缺陷进行了实证研究。从我们的实证分析中,我们识别出9个缺陷类别和7个缺陷症状。我们观察到某些缺陷类别是特定于Julia的,例如,类型不稳定和世界年龄缺陷。我们还调查了52名开发人员,根据感知的严重性对确定的类别进行排名。基于我们的实证分析,我们为研究人员和工具制造人员提供了具体的建议。
Julia has emerged as a popular programming language to develop scientific software, in part due to its flexible syntax akin to scripting languages while retaining the execution speed of a compiled language. Similar to any programming language, Julia programs are susceptible to defects. However, a systematic characterization of defects in Julia programs remains under-explored. A systematic analysis of defects in Julia programs will act as a starting point for researchers and toolsmiths in building developer tools to improve the quality of Julia programs. To this end, we conduct an empirical study with 742 defects that appear in Julia programs by mining 30,494 commits and 3,038 issue reports collected from 112 open-source Julia projects. From our empirical analysis, we identify 9 defect categories and 7 defect symptoms. We observe certain defect categories to be Julia-specific, e.g., type instability and world age defects. We also survey 52 developers to rank the identified categories based on perceived severity. Based on our empirical analysis, we provide specific recommendations for researchers and toolsmiths.