所在的位置: C++ >> C++发展 >> FacebookTransCoderA

FacebookTransCoderA

行政求职招聘微信群 http://nvrenjkw.com/nxzx/4046.html

Facebook研究人员表示,他们已经开发出了一种名为TransCoderAI的“神经编译器”,该系统可以将代码从一种高级编程语言(如C++、Java和Python)转换为另一种。

将现有的代码库迁移到更现代或更高效的语言需要大量的资源,包括财务和人力。譬如,澳大利亚联邦银行在5年的时间里花费了大约7.5亿澳元,将其平台从COBOL转换为Java。而从理论上讲,转编译器可以则帮助消除从头重写代码所需的费用。但是,由于源语言和目标语言都具有不同的语法、变量类型、标准库函数和平台API,因此这个在实践中其实很难构建。

据介绍,Facebook的TransCoderAI则采用了一种无监督的学习方法来应对这些挑战。它可以在无人监督的情况下不受监督地运行,从而在没有标签的情况下在数据集中找到未检测到的模式,比基于规则数据集的模型要高效得多。

无论使用哪种编程语言,神经编译器都可以将代表相同指令的代码段映射到相同代码段。一位共同作者写道:“TransCoder可以轻松地推广到任何编程语言,不需要任何专业知识就可以将代码从一种编程语言转换为另一种编程语言,并且在很大程度上优于商业解决方案。我们的结果表明,通过向解码器添加简单的约束以确保生成的函数在语法上是正确的,或者通过使用专用架构,可以轻松解决该模型所犯的许多错误。”

TransCoderAI的准确性

Facebook研究人员在超过万个开源存储库中的公开代码上对TransCoderAI进行了训练,以专注于功能级别的代码转换。

为了评估TransCoderAI的性能,他们从GeeksforGeeks中选择了个C++、Java和Python并行函数。GeeksforGeeks是一个在线平台,用于收集编写代码时的问题,并提供多种编程语言的解决方案。

利用以上两个数据,他们开发了一个名为计算精度(


转载请注明:http://www.aierlanlan.com/tzrz/1638.html