-
公开(公告)号:CN116561004A
公开(公告)日:2023-08-08
申请号:CN202310575198.5
申请日:2023-05-19
Applicant: 南京大学
IPC: G06F11/36 , G06F8/41 , G06N3/0455 , G06N3/08 , G06F16/35
Abstract: 本发明公开了一种基于Transformer模型的代码复杂度分析方法。具体步骤包括:对代码数据集进行处理,添加规范化的标签,构建训练语料;对代码进行初步预处理,包括去除代码中的噪音信息,并根据驼峰命名法或下划线分割法进行分词;通过抽象语法树提取代码的结构信息;将代码的语义信息和结构信息结合,训练Transformer模型,并生成代码的时间复杂度。本发明模拟了程序员在根据需求编写代码时,随着项目变得复杂,需要经常查看代码复杂度以重构代码,优化项目的真实场景。本发明能够从代码的语义层面和结构层面度量代码的复杂度,并能够准确获得代码的复杂度。
-
公开(公告)号:CN117112022A
公开(公告)日:2023-11-24
申请号:CN202310575274.2
申请日:2023-05-19
Applicant: 南京大学
IPC: G06F8/72 , G06F8/73 , G06F40/30 , G06F16/35 , G06N3/0442 , G06N3/044 , G06N3/0455
Abstract: 本发明公开了可解释的神经程序修复方法,包括以下步骤:收集错误代码、目标修复代码、代码解释的源数据,对源数据做筛选过滤处理,数据集格式和条目选定并构建数据集Excode,构造不同类型的神经程序修复模型,训练并得到相应的模型参数并在验证集上测试,根据实验结果统计修复成功率和评估解释性描述。模型生成修复代码的同时输出对应的解释性描述,能帮助使用者很好地理解整个修复过程,包括错误代码和修复代码中的信息。本发明能进一步推动神经程序修复技术的进步,为这一技术的发展和落地应用做出贡献。
-
公开(公告)号:CN113076089B
公开(公告)日:2023-11-21
申请号:CN202110404660.6
申请日:2021-04-15
Applicant: 南京大学
IPC: G06F8/30 , G06F8/70 , G06N3/0455 , G06N3/0442 , G06N3/08
-
公开(公告)号:CN113076089A
公开(公告)日:2021-07-06
申请号:CN202110404660.6
申请日:2021-04-15
Applicant: 南京大学
Abstract: 本发明公开了一种基于对象类型的API补全方法,包括以下步骤:基于Github代码托管平台生成Java代码数据集;基于Java代码数据集,使用eclipseAST的API解析抽象语法树,再遍历抽象语法树,生成GROUM,构建一个Java JDK的API调用序列数据集;基于LSTM和注意力机制搭建深度学习训练模型;开发一个基于本发明模型的IDEA插件;借助插件客户端对当前代码分析后获取API序列和空缺位置,传给服务器,服务器中模型解析结果并返回API补全推荐列表。本发明旨在为程序开发者在实际编程过程中,提供切实可用的API补全方案,实现了一个基于对象类型的深度学习模型以及IDEA插件用于API补全推荐,提高了API补全的准确性与易用性。
-
公开(公告)号:CN113961241A
公开(公告)日:2022-01-21
申请号:CN202111291169.3
申请日:2021-11-02
Applicant: 南京大学
Abstract: 本发明公开了一种基于GAT图神经网络模型的代码克隆检测方法,包括以下步骤:根据克隆代码的定义,从编程竞赛网站和现有代码克隆数据集提取生成相应定义的克隆代码数据;解析代码文本生成AST抽象语法树;在AST抽象语法树的基础上增加人工定义的附加边生成表示图;将代码表示图输入GAT网络模型训练获得图表征向量;拼接克隆代码对的表征向量输入二分类网络;判别输出代码克隆预测结果。本发明解决了代码克隆检测领域对代码语义型克隆检测能力不足的问题,通过将代码文本转换为图结构表示,从语义与结构层面表征了克隆代码信息,能准确获得学习克隆代码的内在联系并进行克隆代码判别预测,提高了代码克隆检测的准确性。
-
-
-
-