返回
iJTyper: An effective type inference framework for incomplete java codes by integrating constraint- and statistics-based methods
DOI:10.1016/j.eswa.2025.129972.png)
摘要
En 中文
推断不完整代码(也称为代码片段)中使用的API类型,例如那些在问答论坛上的代码,是与代码进行交互的必要步骤。针对不完整Java代码提出的现有类型推断方法主要可分为基于约束或基于统计两类。前者依赖于预构建的API知识库(KB)和代码片段中的类型约束,这对其代码语法提出了更高要求,因此由于语法限制导致召回率较低。后者通过从代码语料库中学习统计规律克服了语法限制,但很少利用代码片段中的类型约束,可能导致精度降低。在本文中,我们提出了一种有效的类型推断框架iJTyper,用于不完整Java代码,通过整合基于约束和基于统计方法的优势互补。对于代码片段,iJTyper首先应用基于约束的方法,并利用推断出的API类型扩充代码上下文。然后,它对扩充后的代码片段应用基于统计的方法。预测出的API类型进一步用于通过减少其预构建KB来改进基于约束的方法。iJTyper迭代执行这两种方法,并执行代码上下文扩充和KB缩减机制,直至满足终止条件。最终的推断结果通过结合两种方法的结果生成。我们通过整合两种最新方法SnR和MLMTyper实现了一个iJTyper版本,并在两个开源数据集上评估了iJTyper。结果表明:1)iJTyper在两个数据集上均达到最高的平均精度/召回率1为97.3%和92.5%;2)iJTyper分别将SnR和MLMTyper的平均召回率提高了至少7.3%和27.4%;3)iJTyper将近期流行的语言模型ChatGPT在两个数据集上的平均精度/召回率提高了3.2%和0.5%。
期刊
IF:
7.5
论文数:
3.0W
被引数:
10.2W

