five

CodeNet|代码克隆检测数据集|软件工程数据集

收藏
arXiv2024-09-10 更新2024-09-12 收录
代码克隆检测
软件工程
下载链接:
https://github.com/zhuwq585/MCCD_Benckmarking
下载链接
链接失效反馈
资源简介:
CodeNet数据集由名古屋大学信息学研究生院创建,主要用于评估多语言代码克隆检测器的性能。该数据集包含来自两个在线评判系统(AIZU OJ和AtCoder)的代码数据,涵盖Java、Python、C和C++四种编程语言。数据集通过选择12个子数据集来反映目标克隆检测器覆盖的编辑距离相似性部分,旨在评估克隆检测器的正确性。CodeNet数据集的应用领域主要集中在软件工程中的代码克隆检测,旨在解决现有克隆检测器在语言扩展性和检测性能方面的不足。
提供机构:
名古屋大学信息学研究生院
创建时间:
2024-09-10
原始信息汇总

MCCD_Benchmarking 数据集概述

数据集下载

  • URL: https://www.dropbox.com/scl/fi/lezo5ul15qg6oudud82fx/RecallBenchmarking.zip?rlkey=pm5grsfq314s2cuw3bbdcm84l&dl=0
  • 解压后内容: 包含两个文件夹 benchmark-datasimi-source,需放置在 MCCD_Benchmarking/recall/ 目录下。

数据集使用

执行克隆检测

  • 子集标识: "p02263", "p00048", "p00001", "p00000", "p02269", "p02256", "p02257", "p02265", "p00002", "p00003", "p00008", "p00050", "p02271", "p00005"
  • 结果文件命名: Language_problemId.csv
  • 文件格式: 每行表示一个克隆对,格式为 "segment1 file path, segment1 start line, segment1 endline, segment2 file path, segment2 start line, segment2 endline"

添加目标工具

  • 命令: python3 AddDetector.py ToolName
  • 参数: ToolName 为目标克隆检测器的标识符

导入检测结果

  • 命令: python3 ImportClones.py ToolName ResultFolder [Language+]
  • 参数:
    • ToolName: 工具标识符
    • ResultFolder: 存放各子集结果的文件夹路径
    • Language: 若只导入部分目标语言,列出目标语言

评估

  • 命令: python3 Evaluation.py [ToolName]
  • 参数: ToolName 为目标检测器的标识符,若未输入则评估所有已注册的工具

输出所有结果

  • 命令: python3 GroupedData.py

清除工具或克隆

  • 命令: python3 CloneClones.py ToolName
  • 参数: ToolName 为工具标识符
  • 命令: python3 RemoveDetector.py ToolName
  • 参数: ToolName 为工具标识符

数据集特性

  • Recall: 已提供
  • Precision: 即将提供
AI搜集汇总
数据集介绍
main_image_url
构建方式
CodeNet数据集的构建基于大规模的编程竞赛和开源项目,涵盖了多种编程语言和复杂度各异的代码片段。通过自动化工具和人工审核相结合的方式,确保了代码的质量和多样性。数据集的构建过程中,还特别关注了代码的可读性和可维护性,以反映实际工程中的编程实践。
特点
CodeNet数据集的显著特点在于其广泛的语言覆盖和多样化的代码风格。该数据集不仅包含了常见的编程语言如Python、Java和C++,还涵盖了一些较为小众的语言。此外,数据集中的代码片段来自不同的编程竞赛和开源项目,具有高度的代表性和实用性,能够为研究者和开发者提供丰富的资源。
使用方法
CodeNet数据集适用于多种编程相关的研究和应用场景,如代码自动生成、代码翻译和代码优化等。研究者可以通过该数据集训练和评估各种编程语言模型,开发者则可以利用其中的代码片段进行学习和实践。此外,数据集还提供了详细的元数据和标签,方便用户进行数据筛选和分析。
背景与挑战
背景概述
在计算机科学领域,编程语言的学习和应用一直是研究的热点。CodeNet数据集由IBM研究院于2020年发布,旨在为编程语言理解和代码生成提供一个大规模、多样化的数据资源。该数据集包含了来自不同编程语言的超过1400万个代码片段,涵盖了从基础算法到复杂应用的广泛领域。CodeNet的发布极大地推动了代码分析、代码生成和程序理解等方向的研究,为学术界和工业界提供了宝贵的资源。
当前挑战
CodeNet数据集的构建过程中面临了多重挑战。首先,代码数据的多样性和复杂性使得数据清洗和标注变得异常困难。其次,不同编程语言的语法和语义差异要求数据集必须具备高度的灵活性和适应性。此外,代码片段的版权和隐私问题也是数据集构建过程中需要严格考虑的方面。最后,如何确保数据集的公平性和代表性,以避免偏见和歧视,是CodeNet数据集面临的另一大挑战。
发展历史
创建时间与更新
CodeNet数据集由IBM研究院于2020年首次发布,旨在为代码理解和生成任务提供大规模的多样化数据资源。该数据集自发布以来,经历了多次更新,以适应不断变化的编程语言和技术需求。
重要里程碑
CodeNet数据集的一个重要里程碑是其首次公开发布,这一事件标志着代码数据集领域的一个重大突破,为研究人员提供了前所未有的代码多样性和规模。此外,CodeNet还引入了多种编程语言和框架的支持,极大地扩展了其应用范围。随着时间的推移,CodeNet不断更新,增加了更多的编程语言和代码示例,进一步丰富了数据集的内容和多样性。
当前发展情况
当前,CodeNet数据集已成为代码理解和生成研究领域的重要资源,其广泛的应用范围涵盖了从代码克隆检测到自动代码生成等多个方向。CodeNet的持续更新和扩展,不仅提升了数据集的质量和多样性,还推动了相关领域的技术进步。通过提供高质量的代码数据,CodeNet为学术界和工业界提供了宝贵的研究材料,促进了代码智能技术的快速发展和应用。
发展历程
  • CodeNet数据集首次由IBM研究院发布,旨在为代码理解和生成任务提供大规模的多样化编程数据。
    2020年
  • CodeNet数据集被广泛应用于多个学术研究项目中,特别是在代码翻译和代码生成领域,展示了其在推动编程语言处理技术发展中的重要作用。
    2021年
  • CodeNet数据集的扩展版本发布,增加了更多编程语言和代码片段,进一步丰富了数据集的多样性和应用范围。
    2022年
常用场景
经典使用场景
在软件工程领域,CodeNet数据集被广泛用于代码理解和生成任务。该数据集包含了大量来自不同编程语言的源代码片段,为研究人员提供了丰富的语料库。通过分析这些代码片段,研究者可以开发出更高效的代码推荐系统、代码补全工具以及代码翻译模型。此外,CodeNet还支持跨语言的代码分析,有助于提升多语言编程环境下的开发效率。
解决学术问题
CodeNet数据集解决了软件工程领域中代码理解和生成的关键问题。传统的代码分析方法往往依赖于单一编程语言或特定领域的代码库,而CodeNet通过提供多语言、多领域的代码数据,使得研究者能够开发出更具普适性的代码处理模型。这不仅推动了代码智能化的研究进展,还为跨语言编程提供了新的解决方案,具有重要的学术价值和实际意义。
衍生相关工作
基于CodeNet数据集,许多经典工作得以展开。例如,研究者利用该数据集开发了多种代码生成模型,这些模型能够根据自然语言描述自动生成相应的代码片段。此外,CodeNet还促进了跨语言代码分析和转换的研究,推动了多语言编程环境的统一和优化。这些衍生工作不仅丰富了软件工程的研究内容,也为实际应用提供了强有力的技术支持。
以上内容由AI搜集并总结生成
用户留言
有没有相关的论文或文献参考?
这个数据集是基于什么背景创建的?
数据集的作者是谁?
能帮我联系到这个数据集的作者吗?
这个数据集如何下载?
5,000+
优质数据集
54 个
任务类型
进入经典数据集