期刊文献+
共找到3篇文章
< 1 >
每页显示 20 50 100
代码自动生成工具Github Copilot生成代码质量的分析
1
作者 王东煜 莫然 +1 位作者 詹文静 蒋颖婕 《计算机科学》 北大核心 2025年第7期37-49,共13页
Github Copilot是Github和OpenAI推出的一款基于生成式AI的代码自动生成工具,它的核心功能之一,是根据自然语言的描述生成对应的实现代码。这一AI在编程领域的拓展,近年来引起了热议与重视。现阶段人们的关注点主要在AI编程与人类编程... Github Copilot是Github和OpenAI推出的一款基于生成式AI的代码自动生成工具,它的核心功能之一,是根据自然语言的描述生成对应的实现代码。这一AI在编程领域的拓展,近年来引起了热议与重视。现阶段人们的关注点主要在AI编程与人类编程的对比,比如AI程序员与人类程序员的编程效率对比,以及两者所编写的代码性能对比。然而,目前关于Copilot代码本身特征的研究较少,特别是代码质量问题,例如AI生成代码有哪些缺陷,这些缺陷是否会导致程序错误,以及代码是否易于理解等。代码质量对软件开发至关重要,分析AI生成代码的代码质量有助于更好地使用和改进此类代码生成工具。本文使用工具从LeetCode中提取所有的开源问题(共2033道)作为数据样本对Copilot进行测试,分别生成3种语言(Java,JavaScript,Python)的代码建议,提交并记录代码建议的执行结果。使用SonarQube静态分析这些代码建议文件,结合代码建议的执行结果,从可靠性、可维护性、复杂性3个维度分析Copilot的代码质量特征。结果发现:1)Copilot生成代码较为可靠,对于Java,JavaScript和Python 3种语言,分别收集了7,5,9种Bug类型,且3种语言涉及Bug的代码建议比例不超过3%,但涉及Bug的代码建议50%以上未通过测试;2)Copilot代码建议可维护性较差,对于Java,JavaScript和Python,分别收集了47,23,20种代码异味类类型,3种语言涉及代码建议的比例均超过40%,涉及代码异味的代码建议50%以上未通过测试用例;3)Copilot代码易于理解,多数代码建议的复杂度未超过阈值,且复杂度异常的代码建议比例不超过6%。最后,结合实验结果,提出了维护Copilot的可行建议,并探讨了此类工具未来可能的研究方向。 展开更多
关键词 自动代码生成 代码质量 代码可靠性 代码维护 代码复杂度
在线阅读 下载PDF
克隆代码分析方法研究 被引量:1
2
作者 王克朝 朱宸光 +1 位作者 王甜甜 苏小红 《计算机应用研究》 CSCD 北大核心 2017年第3期748-751,共4页
针对已有克隆代码检测工具只输出克隆组形式的检测结果,而难以分析克隆代码对软件质量的影响问题,提出了危害软件质量的关键克隆代码的识别方法。定义了克隆代码的统一表示形式,使之可以分析各种克隆检测工具的检测结果,然后解析源程序... 针对已有克隆代码检测工具只输出克隆组形式的检测结果,而难以分析克隆代码对软件质量的影响问题,提出了危害软件质量的关键克隆代码的识别方法。定义了克隆代码的统一表示形式,使之可以分析各种克隆检测工具的检测结果,然后解析源程序和克隆检测结果,识别标志符命名不一致性潜在缺陷,定义了克隆关联图,在此基础上检测跨越多个实现不同功能的文件、危害软件可维护性的克隆代码,最后对检测结果进行可视化统计分析。克隆代码分析工具被应用于分析开源代码httpd,检测出了1组标志符命名不一致的克隆代码和44组危害软件可维护性的关键克隆类。实验结果表明,该方法可以有效辅助软件开发和维护人员分析、维护克隆代码。 展开更多
关键词 克隆代码 克隆代码分析 克隆代码维护 缺陷检测
在线阅读 下载PDF
Cobol到Java翻译中的数据类型转换方法 被引量:4
3
作者 石学林 张兆庆 武成岗 《计算机研究与发展》 EI CSCD 北大核心 2006年第2期336-342,共7页
将Cobol代码迁移到新的平台,如Java是减轻Cobol代码维护负担的一个有效方法·怎样将Cobol数据平滑迁移到新平台则是必须解决的基本问题之一·以前的大部分研究工作都直接将Cobol数据映射到现代程序设计语言中的基本数据类型,比... 将Cobol代码迁移到新的平台,如Java是减轻Cobol代码维护负担的一个有效方法·怎样将Cobol数据平滑迁移到新平台则是必须解决的基本问题之一·以前的大部分研究工作都直接将Cobol数据映射到现代程序设计语言中的基本数据类型,比如int,float等·但是,这种简单映射并不能保持原来的Cobol语义,从而导致目标码并不能与原来的代码运行一致·首先利用数据抽象技术对Cobol数据进行初步建模,在此基础上进一步提出了一个纯Java的功能等价的封装方法,可以有效地将Cobol数据描述映射到Java类型系统·该方法已经在一个Cobol2Java翻译系统———C2J翻译器中得到实现,并且应用于一个近400万行的真实银行商用系统·实验结果表明,此方法可以在保持功能等价的情况下,将Cobol数据无需手工干预地迁移到Java平台· 展开更多
关键词 Cob012Java 遗产代码 数据类型迁移 数据封装 代码维护
在线阅读 下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部