XLCoST
收藏arXiv2022-06-17 更新2024-06-21 收录
下载链接:
https://github.com/reddy-lab-code-research/XLCoST
下载链接
链接失效反馈官方服务:
资源简介:
XLCoST是一个跨语言代码智能基准数据集,包含8种语言(7种常用编程语言和英语)的细粒度并行数据,支持10种跨语言代码任务。该数据集是目前最大的源代码并行数据集,不仅在大小上,而且在语言数量上都是最大的。数据集通过匹配代码注释实现并行,确保了不同语言间代码片段的功能一致性。XLCoST的应用领域包括代码翻译、摘要、合成和搜索等,旨在解决跨语言代码理解和生成的问题。
XLCoST is a cross-lingual code intelligence benchmark dataset that features fine-grained parallel data across 8 languages (7 widely-used programming languages plus English), supporting 10 cross-lingual code tasks. Currently, it is the largest parallel source code dataset in terms of both overall scale and the number of supported languages. The parallel pairs are established by matching code comments, which guarantees the functional consistency of code snippets across different languages. Application domains of XLCoST include code translation, summarization, synthesis, search and more, with the goal of addressing challenges in cross-lingual code understanding and generation.
提供机构:
弗吉尼亚理工学院暨州立大学计算机科学系
创建时间:
2022-06-17
搜集汇总
数据集介绍

构建方式
XLCoST数据集的构建始于从GeeksForGeeks网站上收集编程问题及其解决方案,这些问题和解决方案涵盖了7种常用编程语言和英文。数据收集过程中,首先移除了重复的问题,并从每个页面上提取了问题描述和每种语言的解决方案程序。每个程序被分割成代码片段,并从程序中移除了注释和文档字符串。任何个人信息,如代码贡献者的名字,也从注释和代码中删除。数据对齐是通过匹配不同语言解决方案程序中的注释来完成的,这导致了在不同语言之间具有相同功能的并行片段。对于一些未对齐的情况,通过计算注释对之间的平均相似度分数来进行检测,并在必要时进行手动检查和调整。
特点
XLCoST数据集的特点在于其多语言并行性,包含8种语言的并行数据,支持10种跨语言代码任务。数据集在代码片段和程序级别上都进行了对齐,使得给定一种语言的程序,数据集中包含相同程序的其他6种编程语言版本。此外,数据集还包含了丰富的注释,为代码片段和程序提供了上下文信息。最后,数据集在规模和语言数量上都是最大的,为源代码的并行数据集。
使用方法
使用XLCoST数据集的方法包括进行代码翻译、代码摘要、代码合成、自然语言代码搜索和跨语言代码搜索等10种跨语言代码任务。数据集已被划分为训练集、验证集和测试集,以避免数据泄露和偏差。为了评估模型在低资源语言上的性能,还采用了从代码片段级别训练的迁移学习。用户可以通过访问GitHub上的代码库来获取数据集和代码,并按照数据集的许可证进行使用。
背景与挑战
背景概述
在机器学习的推动下,源代码数据的理解已经取得了显著进步,并在代码翻译、摘要、合成和代码搜索等下游任务中取得了良好的性能。然而,高质量标签数据的缺乏极大地阻碍了这些代码相关任务的进展。为了解决这一问题,XLCoST数据集应运而生,这是一个新的跨语言代码智能基准数据集,包含来自8种语言(7种常用编程语言和英语)的细粒度并行数据,并支持10种跨语言代码任务。XLCoST数据集是目前为止规模最大、语言数量最多的源代码并行数据集,为研究社区提供了宝贵的资源,促进了跨语言代码新方法的发展和验证。
当前挑战
XLCoST数据集在解决跨语言代码相关任务方面面临着多项挑战。首先,开源代码数据虽然数量庞大,但大部分都是未标记的,而代码翻译、代码摘要和代码合成等任务需要高质量的并行数据进行模型训练。其次,现有的标签数据集通常规模较小,例如CodeXGLUE中的代码翻译数据集仅包含约70个测试程序和50个验证程序。由于评估数据规模小,基于这些数据集训练的模型可能无法得到充分的评估。此外,现有的标签数据集通常只涵盖有限数量的语言,例如CodeXGLUE中的代码翻译数据集仅涵盖Java和C#两种语言。由于某些编程语言中标签数据的稀缺,低资源语言中的代码任务仍然是一个难题。XLCoST数据集在构建过程中也面临了挑战,例如如何从开源项目中挖掘并行数据,如何确保不同语言程序之间的对齐,以及如何避免数据泄露和偏差等。
常用场景
经典使用场景
XLCoST数据集是跨语言代码智能领域的基准数据集,包含8种语言(7种常用编程语言和英语)的细粒度平行数据,支持10种跨语言代码任务。该数据集的主要应用场景包括:代码翻译、代码摘要、代码生成和代码搜索。代码翻译任务涉及将源代码从一个编程语言转换为另一个编程语言,这对于软件平台适配和遗留代码迁移等场景非常有价值。代码摘要任务旨在生成给定代码的文本描述,以增加代码的可读性和协作性。代码生成任务专注于根据文本输入生成源代码。代码搜索任务包括自然语言代码搜索和跨语言代码搜索,分别使用文本和代码作为查询来检索相关代码。
解决学术问题
XLCoST数据集解决了跨语言代码智能领域缺乏高质量标注数据的难题。现有的开源代码数据大多为未标注数据,且标注数据规模较小,且通常只涵盖有限的语言。XLCoST数据集提供了大规模的平行数据,涵盖了8种语言,支持10种跨语言代码任务,为相关研究提供了宝贵的资源。该数据集的出现,促进了跨语言代码智能领域的发展,为研究人员提供了更广泛的实验平台,有助于推动代码翻译、代码摘要、代码生成和代码搜索等任务的进步。
衍生相关工作
XLCoST数据集的出现,促进了跨语言代码智能领域的研究,衍生了许多相关的经典工作。例如,基于XLCoST数据集,研究人员提出了多种代码翻译模型,如CodeBERT、PLBART和CodeT5,并在代码翻译任务上取得了显著的性能提升。此外,XLCoST数据集还促进了代码摘要、代码生成和代码搜索等任务的研究,推动了相关技术的发展。
以上内容由遇见数据集搜集并总结生成



