关于我们About us

用AI实现C++、Java、Python代码互译运行成功率最高达809%

发布时间:2025-02-22 12:56:10浏览数量: 分享:

  

用AI实现C++、Java、Python代码互译运行成功率最高达809%

  而且TransCoder是一种无监督学习算法,意味着不需要大量成对的、标记的编程代码数据集进行训练。

  最后是反向翻译★★★,它允许模型生成可用于训练的并行数据★★。每当Python转C++模型变得更好时★,它就会为C++转Python模型生成更精确的数据,反之亦然。

  原标题:《用AI实现C++、Java★★★、Python代码互译★,运行成功率最高达80.9%》

  TransCoder没那么智能,但是在计算机技术飞速发展的今天★★,谁知道下一个流行的语音是什么★★★,有了TransCoder★★,至少让我们在移植代码的时候没那么难了★★。

  因此需要一个新的度量标准——计算正确率★★,它表示翻译后的代码测试后是否能与参考代码有相同的输出。

  下图展示了C++、Java和Python关键字的嵌入。在相似的上下文中使用的不同编程语言的关键字在嵌入空间中非常接近。

  首先★★,通过跨语言掩码语言模型(MLM)预处理来初始化模型,这有些类似于自然语言的填空题。结果是表达相同指令的代码片段被映射到与编程语言无关的相同表示。

  TransCoder充分利用了编程语言的特点,比如像for、while、if这些关键词以及通用的数学运算符★。

  难怪论文作者之一Guillaume Lample在Twitter上宣布了这篇论文后很快引起了热议。

  Facebook不是唯一开发AI代码生成系统的公司★★★。前不久微软Build大会上,OpenAI就演示了一个在GitHub数据上训练的模型,仅根据注释内容即可生成对应功能的代码★★。

  因为新冠疫情的缘故,美国一些地区的失业救济系统不堪重负★★,而这些系统都是上古语言COBOL写的。

  本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场★★★,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问★★★。

  和自然语言不同的是★★,代码翻译并不太要求逐字逐句的对照,因此翻译后的代码和参考代码的重合度其实很低★★,比如C++转Java的代码和Ground Truth仅有3.1%匹配★★★。

  我们观察到,TransCoder成功地理解了每种语言特有的语法、数据结构、函数库和方法★★。

  远的不说,Python 2刚刚淘汰★★★,过去的老程序手工转成Python 3也是个很大的工程。

  对于映射的实现(map和dict)★★、用于将字符串转换为字符数组(c_str和toCharArray)以及类似的变量类型(例如long、int和Integer),也可以观察到相同的现象。

  Facebook也是这么想的,所以他们最近提出了TransCoder,一个翻译编程语言的AI,现在可以在C++、Java、Python语言之间互译。

  另外NLP翻译中的BLEU也不宜作为代码翻译的衡量标准,因为这只能表示实际代码和参考代码之间的语法差异。