日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Facebook "TransCoder AI"可在 Java、Python 和 C++ 之间转换代码

發布時間:2023/11/22 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 Facebook "TransCoder AI"可在 Java、Python 和 C++ 之间转换代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  Facebook 研究人員表示,他們已經開發出了一種名為TransCoder AI的“神經編譯器” ,該系統可以將代碼從一種高級編程語言(如 C ++、Java 和 Python)轉換為另一種。

  將現有的代碼庫遷移到更現代或更高效的語言需要大量的資源,包括財務和人力。譬如,澳大利亞聯邦銀行在 5 年的時間里花費了大約 7.5 億澳元,將其平臺從 COBOL 轉換為 Java。而從理論上講,轉編譯器可以則幫助消除從頭重寫代碼所需的費用。但是,由于源語言和目標語言都具有不同的語法、變量類型、標準庫函數和平臺 API,因此這個在實踐中其實很難構建。

  據介紹,Facebook 的 TransCoder AI則采用了一種無監督的學習方法來應對這些挑戰。它可以在無人監督的情況下不受監督地運行,從而在沒有標簽的情況下在數據集中找到未檢測到的模式,比基于規則數據集的模型要高效得多。

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

  TransCoder AI 的準確性

  Facebook 研究人員在超過 280 萬個開源存儲庫中的公開代碼上對 TransCoder AI 進行了訓練,以專注于功能級別的代碼轉換。

  為了評估 TransCoder AI 的性能,他們從 GeeksforGeeks 中選擇了 852 個 C ++、Java 和 Python 并行函數。GeeksforGeeks 是一個在線平臺,用于收集編寫代碼時的問題,并提供多種編程語言的解決方案。

  利用以上兩個數據,他們開發了一個名為 "計算精度(computational accuracy)"的新指標,用于檢查翻譯后的函數在輸入相同的情況下是否會產生與源語言相同的輸出。

  結果

  這是 AI 從以下位置轉換代碼時獲得的結果的準確性水平:

  • 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 已經展示出對每種語言(Java、Python 和 C ++)的語法及其數據結構的理解。它甚至能夠正確地調整每種語言的庫,同時適應小的修改--例如,重命名輸入中的一個變量。盡管 Transcoder 并非十分完美,無法在代碼生成過程中考慮某些變量類型。 但是,它的性能確實優于已有的利用專家知識手動構建的框架。

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

總結

以上是生活随笔為你收集整理的Facebook "TransCoder AI"可在 Java、Python 和 C++ 之间转换代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。