欢迎大家来到IT世界,在知识的湖畔探索吧!
TransCoder AI如何弥合差距
将软件从一种编程语言转换为另一种编程语言是一项昂贵的工作。 许多公司花费数百万美元来重新编写代码。
通常,此过程必须由手工完成,这取决于能够阅读和理解源语言和目标语言的程序员,就像我们日常语言的翻译者一样(不,不是leetpeak)。 这使得将代码从一种语言翻译成另一种语言的过程既昂贵又费时。
但是,Facebook研究人员目前正在开发一种称为TransCoder的新AI,该AI很有可能在不久的将来实现这一过程的自动化。 这样可以节省许多公司的时间和金钱。 澳大利亚联邦银行刚刚花费了5年时间和7.5亿美元,将其代码库从过时的Cobol编程语言更新为Java。
简化转换和编程流程
一旦TransCoder接管了工作,将代码从一种语言转换为另一种语言的过程将比现在更快,更便宜。
有许多编程语言可用,从诸如C#和C ++的复杂语言到Java或Python,以及即将淘汰的语言(如Cobol)。
以Cobol为例,这是许多人不再学习的语言。 与更现代的语言(如Java)相比,它已经过时,过于复杂并且不那么用户友好。
但是,许多软件仍在Cobol上运行。 路透社编辑的图形显示,所有ATM卡刷卡的95%是使用Cobol代码完成的。 美国几乎所有银行系统中的一半仍在使用Cobol运作。
所有这些程序都将需要重新编写,以在将来使用更现代的编程语言(例如Java)来保持可管理性。 这是TransCoder可以很好地实现自动化和简化过程的地方。
TransCoder具有高度的通用性
目前,TransCoder可以在C ++,Java和Python之间自由翻译,但是TransCoder背后的研究团队表示,它将能够适应任何编程语言对,并能在它们之间进行流畅的翻译。
仅具有在各种语言之间进行翻译的目的的软件已经可用,但是结果往往不言而喻,并且由于每种语言的结构不同,因此不能一劳永逸地使用。 这些所谓的S2S(源到源)编译器远未实现无错误的代码编译,并且需要进行大量的错误修正才能使最终结果起作用。 通常,以所需的语言从头开始重写代码通常会更容易。
任何需要将代码从例如C#更改为C ++或相反的程序员都将告诉您一件事:”学习C#和C ++,然后花费大量时间从头开始重写代码。”
TransCoder不仅通过将源语言翻译为目标语言进行学习,还可以将其反向翻译回来。 如果您过去曾经使用过Google翻译器,那么您肯定知道几次单击”反向翻译”会给您带来奇怪的结果,因为翻译器会将更多内容从上下文中提取出来。
TransCoder两种方式翻译代码以弥补这些差异,并调整代码,直到两种方式均能达到预期的结果。 这样,可以确保连贯性。
首次测试取得了令人印象深刻的结果
Facebook的研究人员发表了一份研究论文,展示了TransCoder的方法和各种测试的最初结果。
他们使用GeeksForGeeks的852多个并行函数进行了运行测试,并进行了检查,以确保TransCoder翻译的准确性。
· 从Java转换为C ++的准确性为91.6%。
· 从C ++转换为Java的准确性为74.8%。
这表明TransCoder已经大大超越了竞争对手。
最大的优点是TransCoder可以自主工作,并且不依赖于人类的专业知识,而当前的基准程序需要熟练的程序员才能提供均等的结果。
TransCoder和源代码到源代码编译器的未来
尽管在经过测试的语言对中它已经胜过其他基准S2S编译器,但研究团队将致力于提高其准确性并提供更可靠的结果。
这种发展对编程的未来意味着什么?
当前,许多程序员通过代码翻译来赚钱。 理论上,TransCoder可以接替这项工作。 但是幸运的是,结果永远不会完美,人眼可以发现总是会在源代码中找到错误的错误。 TransCoder不会完全接手这项工作,但可能可以大大减轻程序员的工作量。
他们不必从头开始编写整个代码,而只需”校对” TransCoder结果提供的内容。
许多游戏开发人员,尤其是独立工作室,都依赖Epic的Unreal引擎或Unity Technologies的Unity引擎。 这里的主要区别之一是一个使用C ++,而另一个使用C#运行。 在选择发动机时,这通常是决定因素。
能够轻松地将一种语言的代码重写为另一种语言将具有更大的通用性,并允许游戏开发人员切换引擎,而无需从头开始重写大量的代码。
不过,Facebook并不是唯一一家开发基于AI的S2S解决方案的公司。 微软在AI开发方面的旗舰产品OpenAI在Microsoft Build 2020大会上谈到了AI的未来。
CTO凯文·斯科特(Kevin Scott)谈到了许多有趣的发展,但是他的AI从零开始编写代码给我留下了最深刻的印象,只给出了指令。
Github演示在30:00左右开始。
这些发展既令人兴奋又令人恐惧。 看到AI能够帮助我们完成更复杂的任务,真是令人兴奋。 但是与此同时,它一次又一次地提醒我们,越来越多的人会慢慢地将工作丢给复杂的机器。
因为这些技术仍在开发中,目的是省钱。 这笔钱目前支付给手动完成这些工作的人。
凯文(Kevin)是ILLUMINATION和Polyglot诗歌出版物的编辑和作家。 在Twitter和LinkedIn上关注他。
(本文翻译自Kevin Buddaeus的文章《Facebook Develops An AI-Translator For Software Programmers》,参考:https://medium.com/illumination/facebook-develops-an-ai-translator-for-software-programmers-c514f16d2fc5)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/64180.html