歡迎您光臨本站 註冊首頁

臉書的研究人員宣佈,他們開發了一種神經變譯器(neural transcompiler)系統,可以將一種高階程式語言的程式碼轉換成另一種,比如將 C++,Java 或 Python 轉換成另一種。這個轉換過程無需人為監督,可自動搜尋前一種語言中未標註的資料集模式,其效果大幅地好於基於規則的轉換。

從當前的程式碼庫轉換成另一種先進的高效的語言,比如從 Java 或 C++ 轉換成另一種語言,通常代價高昂,因為需要專家同時精通源語言和目標語言。之前,澳洲聯邦銀行就花費了7.5億美元耗時五年將他們的平臺從 COBOL 升級為 Java。

臉書的 TransCoder 系統可以在 C++,Java 和 Python 之間互翻,智慧學習,無人監管。TransCoder 初始化時,進行跨語言的模型關聯性分析,在不同語言中找到具有對映關係的程式碼片段,即相通的指令實現相同的表現。源語言的程式碼被隨機的“遮住”,TransCoder 的任務就是基於上下文推斷出被“遮住”的部分。去燥自動編碼的過程訓練系統生成有效的序列,即使輸入的是噪點資料。同時,回譯(back-translation)使得 TransCoder 可以生成平行資料用於訓練。

臉書的研究人員用 GitHub 的語料庫,即280多萬個程式碼庫訓練 TransCoder,實現“函式”級別的轉換。“TransCoder 不需要任何專業知識,就可以很容易地運用到任何程式語言中,大幅提升在商用解決方案中的表現。我們的研究結果表明,模型產生的大量錯誤可以透過對解碼器新增簡單的約束很容易地修正,以確保生成的‘函式’在語法層面上是正確的,或者透過獨立的架構來解決。”

臉書並非僅有的機構致力於開發 AI 生程式碼的系統。在今年早些時候的 Microsoft’s Build 大會上,OpenAI 演示了一個使用 GitHub 程式碼庫來訓練的模型,透過程式碼中的“英文註釋”生成完整的“函式”。兩年前,萊斯大學的研究人員建立了 Bayou 系統,可以透過關聯程式碼背後的“意圖(intents)”寫出軟體程式。

“事實上,這些系統嘗試去做的,就是去除做軟體時的各種瑣碎” Intel 實驗室的首席科學家 Justin Gottschlich 說,“它們可以幫助提高生產效率,由它們去關注程式中的 bug。可以提高就業,因為沒有程式設計背景的人也能夠用機器透過‘意向性介面’來捕捉和實現他們的創意了。”

本文編譯自:https://venturebeat.com/2020/06/08/facebooks-transcoder-ai-converts-code-from-one-programming-language-into-another


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/116335/ai-one-programming-language-into-another
臉書的 TransCoder 透過 AI 實現程式語言之間的轉換,你是否感到飯碗將要不保?已經有199次圍觀

http://coctec.com/news/all/show-post-237872.html