人工智慧能翻譯語言了:Facebook'TransCoder AI'在Java,Python和C ++之間轉換程式碼
Facebook研究人員還開發了一種名為TransCoder AI的“神經編譯器” 。它是一個可以在Java,Python和C ++等高階語言之間轉換程式碼的系統。將現有的程式碼庫遷移到更現代或更高效的語言需要大量的資源,包括財務和人力。從理論上講,轉編譯器可以幫助消除從頭重寫程式碼所需的費用。
但是,由於源語言和目標語言都具有不同的語法,變數型別,標準庫函式和平臺API,因此在實踐中很難構建它們。
TransCoder AI:適用於任何程式語言的程式碼轉換器
Facebook的TransCoder AI通過無監督的學習方法來應對這些挑戰。它可以在無人監督的情況下不受監督地執行,從而在沒有標籤的情況下在資料集中找到未檢測到的模式,並且以“顯著”的優勢勝過基於規則的基準。
無論使用哪種程式語言,神經編譯器都可以將代表相同指令的程式碼段對映到相同程式碼段。
關於Facebook TransCoder的最好之處在於,它可以輕鬆地推廣到任何程式語言,並且不需要任何專業知識就可以將程式碼從一種程式語言轉換為另一種程式語言。
Facebook研究人員在GitHub上超過280萬個開源儲存庫中的公開程式碼上對TransCoder AI進行了培訓,以專注於功能級別的程式碼轉換。
為了評估TransCoder AI的效能,他們從GeeksforGeeks中選擇了852個C ++,Java和Python並行函式。GeeksforGeeks是一個流行的平臺,可教授問題解答並提供幾種程式語言的解決方案。
他們使用上述兩個資料,開發了一種稱為“計算精度”的新指標,該指標可檢查翻譯後的函式是否生成與源語言中相同的輸出和相同的輸入。
結果
這是AI轉換程式碼時獲得的結果的準確性水平
- C ++到Java:74.8%
- 從C ++到Python:67.2%
- Java到C ++:91.6%
- Java到Python:68.7%
- 從Python到Java:56.1%
- 從Python到C ++:57.8%
研究人員說,TransCoder AI已經展示出對每種語言(Java,Python和C ++)的語法及其資料結構的理解。它甚至可以設法在各種語言之間正確對齊庫,同時進行一些小的修改,例如在輸入中重新命名變數。
儘管Transcoder並非十分完美,因為它無法在程式碼生成過程中考慮某些變數型別。但是,它的效能確實優於重寫人類專家使用知識手動構建的規則的框架。
相關文章
- AI來實現程式碼轉換!Python轉Java,Java轉Go不在話下?AIPythonJavaGo
- Python語言在人工智慧(AI)中的優勢Python人工智慧AI
- binaascii:A Python 在二進位制和 ASCII 之間轉換ASCIIPython
- 硬核觀察 #795 首個可以翻譯無文字語言的口語翻譯 AIAI
- 聊聊C語言/C++—程式和程式語言C語言C++
- Java之時間轉換Java
- 華為雲招聘動物語言翻譯師?人工智慧還能這麼玩人工智慧
- Java 中 CLOB 和字串之間的轉換Java字串
- 翻譯 | 怎麼在Java中替換掉繁雜的if語句Java
- 如何讓AI理解數學?Facebook神經網路透過「語言翻譯」求解數學難題AI神經網路
- C語言高效程式設計的四大祕技之以空間換時間C語言程式設計
- 『翻譯』JavaScript 函數語言程式設計JavaScript函數程式設計
- 在多種程式語言之間轉換程式碼的IDE工具:ide.onelang.ioIDE
- C+、Java、Python選擇哪個程式語言?JavaPython
- C語言兩結構體之間的成員互換C語言結構體
- java基本型別和物件之間的轉換Java型別物件
- C語言-EM4100卡面上三個資料間轉換C語言
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- C 語言程式碼風格之 Linux 核心程式碼風格Linux
- [翻譯] Go 語言入門Go
- 源語言、目標語言、翻譯器、編譯器、直譯器編譯
- 【譯】在 ASP.NET 和 ASP.NET Core 之間共享程式碼ASP.NET
- C語言程式碼區錯誤以及編譯過程C語言編譯
- C語言的隱式型別轉換C語言型別
- C語言進位制轉換與列印C語言
- C語言簡單程式碼程式C語言
- Python一鍵轉Java?“Google翻譯”你別鬧PythonJavaGo
- 幽默之程式語言的能效:Java是最節能的語言之一, Python/Perl是最耗能之一。JavaPython
- Python和Java、PHP、C、C#、C++等其他語言的對比?PythonJavaPHPC#C++
- C 語言程式碼總結
- 20行Python程式碼擼一個命令列英語翻譯工具Python命令列
- Python才是人工智慧AI的首選程式語言,你值得擁有……Python人工智慧AI
- Easy Translator語言翻譯類工具R語言
- Linguist for Mac(語言翻譯軟體)NGUIMac
- Android 多國語言轉換 Excel 和 Excel 轉換為 stringAndroidExcel
- Java Stram實現Map和字串之間互相轉換| BaeldungJava字串
- 角度和弧度之間的轉換
- 在C,C++,java和python執行時直譯器和編譯器的區別C++JavaPython編譯