一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

服務(wù)器資訊|IT/互聯(lián)網(wǎng)|云計(jì)算|區(qū)塊鏈|軟件資訊|操作系統(tǒng)|手機(jī)數(shù)碼|百科知識(shí)|免費(fèi)資源|頭條新聞|

服務(wù)器之家 - 新聞資訊 - 軟件資訊 - Facebook 發(fā)布神經(jīng)編譯器 TransCoder AI:可在 Java、Python、C++ 之間轉(zhuǎn)換代碼

Facebook 發(fā)布神經(jīng)編譯器 TransCoder AI:可在 Java、Python、C++ 之間轉(zhuǎn)換代碼

2020-06-16 09:05開(kāi)源中國(guó) 軟件資訊

Facebook 研究人員表示,他們已經(jīng)開(kāi)發(fā)出了一種名為TransCoder AI 的 神經(jīng) 編譯器 ,該系統(tǒng)可以將代碼從一種高級(jí)編程語(yǔ)言(如 C ++、 Java 和 Python )轉(zhuǎn)換為另一種。 將現(xiàn)有的代碼庫(kù)遷移到更現(xiàn)代或更高效的語(yǔ)言需要大量的資源,包括財(cái)務(wù)

Facebook 研究人員表示,他們已經(jīng)開(kāi)發(fā)出了一種名為TransCoder AI 的 “神經(jīng)編譯器” ,該系統(tǒng)可以將代碼從一種高級(jí)編程語(yǔ)言(如 C ++、JavaPython)轉(zhuǎn)換為另一種。

Facebook 發(fā)布神經(jīng)編譯器 TransCoder AI:可在 Java、Python、C++ 之間轉(zhuǎn)換代碼

將現(xiàn)有的代碼庫(kù)遷移到更現(xiàn)代或更高效的語(yǔ)言需要大量的資源,包括財(cái)務(wù)和人力。譬如,澳大利亞聯(lián)邦銀行在 5 年的時(shí)間里花費(fèi)了大約 7.5 億澳元,將其平臺(tái)從 COBOL 轉(zhuǎn)換為 Java。而從理論上講,轉(zhuǎn)編譯器可以則幫助消除從頭重寫(xiě)代碼所需的費(fèi)用。但是,由于源語(yǔ)言和目標(biāo)語(yǔ)言都具有不同的語(yǔ)法、變量類型、標(biāo)準(zhǔn)庫(kù)函數(shù)和平臺(tái) API,因此這個(gè)在實(shí)踐中其實(shí)很難構(gòu)建。

據(jù)介紹,F(xiàn)acebook 的 TransCoder AI 則采用了一種無(wú)監(jiān)督的學(xué)習(xí)方法來(lái)應(yīng)對(duì)這些挑戰(zhàn)。它可以在無(wú)人監(jiān)督的情況下不受監(jiān)督地運(yùn)行,從而在沒(méi)有標(biāo)簽的情況下在數(shù)據(jù)集中找到未檢測(cè)到的模式,比基于規(guī)則數(shù)據(jù)集的模型要高效得多。

無(wú)論使用哪種編程語(yǔ)言,神經(jīng)編譯器都可以將代表相同指令的代碼段映射到相同代碼段。一位共同作者寫(xiě)道:“ TransCoder 可以輕松地推廣到任何編程語(yǔ)言,不需要任何專業(yè)知識(shí)就可以將代碼從一種編程語(yǔ)言轉(zhuǎn)換為另一種編程語(yǔ)言,并且在很大程度上優(yōu)于商業(yè)解決方案。我們的結(jié)果表明,通過(guò)向解碼器添加簡(jiǎn)單的約束以確保生成的函數(shù)在語(yǔ)法上是正確的,或者通過(guò)使用專用架構(gòu),可以輕松解決該模型所犯的許多錯(cuò)誤。”

TransCoder AI 的準(zhǔn)確性

Facebook 研究人員在超過(guò) 280 萬(wàn)個(gè)開(kāi)源存儲(chǔ)庫(kù)中的公開(kāi)代碼上對(duì) TransCoder AI 進(jìn)行了訓(xùn)練,以專注于功能級(jí)別的代碼轉(zhuǎn)換。

Facebook 發(fā)布神經(jīng)編譯器 TransCoder AI:可在 Java、Python、C++ 之間轉(zhuǎn)換代碼

為了評(píng)估 TransCoder AI 的性能,他們從 GeeksforGeeks 中選擇了 852 個(gè) C ++、Java 和 Python 并行函數(shù)。GeeksforGeeks 是一個(gè) 在線平臺(tái),用于收集編寫(xiě)代碼時(shí)的問(wèn)題,并提供多種編程語(yǔ)言的解決方案。

利用以上兩個(gè)數(shù)據(jù),他們開(kāi)發(fā)了一個(gè)名為 " 計(jì)算精度(computational accuracy)" 的新指標(biāo),用于檢查翻譯后的函數(shù)在輸入相同的情況下是否會(huì)產(chǎn)生與源語(yǔ)言相同的輸出。

結(jié)果

這是 AI 從以下位置轉(zhuǎn)換代碼時(shí)獲得的結(jié)果的準(zhǔn)確性水平:

  • C++ to Java: 74.8%
  • C++ to Python: 67.2%
  • Java to C++: 91.6%
  • Java to Python: 68.7%
  • Python to Java: 56.1%
  • Python to C++: 57.8%

研究人員表示,TransCoder AI 已經(jīng)展示出對(duì)每種語(yǔ)言(Java、Python 和 C ++)的語(yǔ)法及其數(shù)據(jù)結(jié)構(gòu)的理解。它甚至能夠正確地調(diào)整每種語(yǔ)言的庫(kù),同時(shí)適應(yīng)小的修改 -- 例如,重命名輸入中的一個(gè)變量。盡管 Transcoder 并非十分完美,無(wú)法在代碼生成過(guò)程中考慮某些變量類型。但是,它的性能確實(shí)優(yōu)于已有的利用專家知識(shí)手動(dòng)構(gòu)建的框架。

完整論文地址:https://arxiv.org/pdf/2006.03511.pd

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人免费片在线视频观看 | 午夜精品久久久久久久99蜜桃i | 成免费视频 | 逼123| 欧美精品一区二区三区久久 | 情人我吃糖果小说 | 国产乱人乱精一区二区视频密 | 毛片小视频 | 国产在线91 | 精品视频在线播放 | 婚前试爱免费看 | 精品国产一级毛片大全 | 国产亚洲sss在线观看 | 爱情岛论坛亚洲自拍 | 国产在线看片网站 | 草综合| 调教女警花穿环上班 | 天天爽天天操 | 免费看h片的网站 | 成年性午夜免费视频网站不卡 | 四虎在线视频免费观看 | 日日摸日日碰夜夜爽97纠 | 欧美精品超清在线播放 | 日本妇人成熟免费不卡片 | 天天夜夜草草久久伊人天堂 | 日本一道本中文字幕 | 欧美zoosex| 国产成人免费a在线资源 | 美女校花被调教出奶水 | 免费成年网站 | 欧美日韩精品亚洲精品v18 | 美女视频91 | 久久九九有精品国产23百花影院 | 国产资源免费 | 男女视频在线观看 | 肉宠文很肉到处做1v1 | 2019天天干夜夜操 | 全肉一女n男np高h双龙养成 | 黑帮大佬与我的365天2标清中文 | 调教老师肉色丝袜的故事 | 亚洲精品国产一区二区第一页 |