采用基于图的深度学习预测代码克隆实例的修改传播需求

复旦大学CodeWisdom团队利用图神经网络设计模型,预测代码克隆实例的修改传播需求,解决开发人员在克隆代码一致性维护中的难题。研究论文在ICPC 2022中获ACM SIGSOFT Distinguished Paper Award。
摘要由CSDN通过智能技术生成

87eb9327bc2f32c9c4b598a55378b3db.png

CodeWisdom-技术分享

采用基于图的深度学习预测代码克隆实例的修改传播需求

outside_default.png

复旦大学CodeWisdom团队研究论文《Predicting Change Propagation between Code Clone Instances by Graph-based Deep Learning》获得CCF推荐的B类国际会议International Conference on Program Comprehension (ICPC 2022)的ACM SIGSOFT Distinguished Paper Award。

复旦大学软件工程实验室(CodeWisdom团队)在与多个企业的代码克隆检测和管理的技术合作中,针对企业开发人员在克隆代码一致性维护中遇到的实际困难,设计了一套基于图神经网络的模型,针对克隆代码的文本和结构信息以及克隆代码修改的上下文进行大规模训练,从而能够针对克隆代码的修改来预测哪些克隆代码副本(或克隆实例)需要发生相同的修改

相关研究论文《Predicting Change Propagation between Code Clone Instances by Graph-based Deep Learning》近日在在线举办的ICPC 2022中获得ACM SIGSOFT Distinguished Paper Award。

作者包括博士生胡彬、硕士生王晓晨、硕士生傅百强,以及吴毅坚、彭鑫、沙朝锋、赵文耘老师。

如何确定代码克隆的多个实例是否需要进行相同的修改,一直以来困扰着程序员。特别是面对相似但不完全相同的克隆代码,上下文存在差异的情况下,程序员往往需要仔细阅读相关代码,才能判断是否要将其他克隆实例的修改应用到当前的代码克隆实例上。本项研究通过对51个开源项目中提取的6万余代码克隆修改情况进行分析,采用基于图神经网络的深度学习方法训练了一套预测模型,从而辅助开发人员进行克隆代码修改传播的决策。

代码克隆的修改传播现状摸底

a8cd3fb5ae224a29098005e114146d4a.gif

论文首先选取了5个开源项目(Maven, Ant, DBeaver, Tomcat, Camel)开展了代码克隆的修改传播现状摸底。通过从代码版本历史中提取代码克隆对的修改情况,识别出“匹配修改”和“非匹配修改”,从而发现一个克隆对中可能会同时存在“匹配修改”和“非匹配修改”。这表明,对一个克隆代码片段的有些修改需要传播到另一个实例,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值