当前位置: 首页 > 专利查询>厦门大学专利>正文

一种用于自动重命名重构的两阶段预训练框架制造技术

技术编号:40227915 阅读:28 留言:0更新日期:2024-02-02 22:31
一种用于自动重命名重构的两阶段预训练框架。第一阶段,基于RoBERTa模型架构在公开代码数据集CodeSearchNet进行预训练,更快达到收敛条件。第二阶段,为解决变量名重命名重构问题,收集大型官方数据库里的变量重命名重构数据作为实验数据,再利用上游训练好的预训练模型在其上进行微调。为使重构更智能化,设两个子任务:首先预测新名称中子标记的数量,然后相再应地生成子标记。利用约束掩码语言建模进行变量的生成,采用对比学习以生成更加有意义、可读性高的变量标记,还引入一种新的令牌袋损失函数避免生成重复的子标记,对其进行定制以进行自动重命名重构。

【技术实现步骤摘要】

本专利技术涉及预训练学习、代码表示学,尤其是涉及一种用于自动重命名重构的两阶段预训练框架


技术介绍

1、重构在不改变外部行为的情况下改进内部代码结构(martinfowler.1999.refactoring-improving the design of existing code.addisonwesley),是软件演化中经常涉及的一项关键活动,旨在提高软件项目的质量,加快开发进程。重命名重构识别标识符的不当使用(例如,变量、类型、方法和类名称),提供一个有意义的名称来替换。标识符占所有源令牌的很大一部分。开发人员经常应用重命名操作来提高源代码的可读性和可维护性,这有助于避免软件容易出错,重命名重构是最常执行的重构类型,占用开发人员的工作时间。为标识符选择一个有意义的名称并非易事,需要程序的专业知识和上下文知识。大多数现有工作研究重构工作主要涉及以下几个方面:自动重构检测、重命名重构、变量名预测、代码表示学习。

2、现有的重构研究主要集中在检测两个版本源代码之间的重构活动并识别重构类型,即自动重构检测。自动重构检测有助于更新应用程序以使用本文档来自技高网...

【技术保护点】

1.一种用于自动重命名重构的两阶段预训练框架,其特征在于包括以下两个阶段:

2.如权利要求1所述一种用于自动重命名重构的两阶段预训练框架,其特征在于在第一阶段中,所述基于RoBERTa模型架构在公开代码数据集CodeSearchNet进行预训练,具体步骤为:

3.如权利要求1所述一种用于自动重命名重构的两阶段预训练框架,其特征在于在第二阶段中,所述收集大型官方数据库(GitHub)里的变量重命名重构数据作为实验数据;重构数据包括JavaRef和TL-CodeSum,构建一个重构数据集JavaRef,用于评估自动重命名重构和其他重构任务,进一步改编代码语料库TL-C...

【技术特征摘要】

1.一种用于自动重命名重构的两阶段预训练框架,其特征在于包括以下两个阶段:

2.如权利要求1所述一种用于自动重命名重构的两阶段预训练框架,其特征在于在第一阶段中,所述基于roberta模型架构在公开代码数据集codesearchnet进行预训练,具体步骤为:

3.如权利要求1所述一种用于自动重命名重构的两阶段预训练框架,其特征在于在第二阶段中,所述收集大型官方数据库(github)里的变量重命名重构数据作为实验数...

【专利技术属性】
技术研发人员:纪荣嵘李辉刘好
申请(专利权)人:厦门大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1