Facebook sviluppa TransCoder per traduce u codice da una lingua di prugrammazione à l'altru

L'ingegneri di Facebook anu publicatu un transcompiler TransCoder, chì usa tecniche d'apprendimentu automaticu per trasfurmà u codice fonte da una lingua di prugrammazione d'altu livellu à l'altru. Attualmente, u supportu hè furnitu per a traduzzione di codice trà Java, C++ è Python. Per esempiu, TransCoder permette di cunvertisce u codice fonte Java in codice Python, è u codice Python in codice fonte Java. I sviluppi di u prugettu sò stati messi in pratica ricerca teorica nantu à a creazione di una rete neurale per una transcompilazione automatica efficiente di codice è sparghje licenziatu sottu una licenza Creative Commons Attribution-NonCommercial 4.0 per usu micca cummerciale solu.

L'implementazione di u sistema di machine learning hè basatu annantu à Pytorch. Dui mudelli pronti sò offerti per scaricà: u primu per traduce C++ in Java, Java in C++ è Java in Python, è u sicondu per a trasmissione
C++ à Python, Python à C++ è Python à Java. Per furmà i mudelli, avemu usatu i codici fonte di prughjetti publicati in GitHub. Se vulete, i mudelli di traduzzione ponu esse creati per altri linguaggi di prugrammazione. Per verificà a qualità di a trasmissione, hè stata preparata una cullizzioni di teste di unità, è ancu una suite di teste chì include 852 funzioni parallele.

Hè riclamatu chì in termini di precisione di cunversione, TransCoder hè significativamente superiore à i traduttori cummerciale chì utilizanu metudi basati nantu à e regule di cunversione, è in u prucessu di travagliu permette di fà senza l'evaluazione esperta di l'esperti in a lingua fonte è di destinazione. A maiò parte di l'errori chì si sviluppanu durante u funziunamentu di u mudellu pò esse eliminati aghjunghjendu restrizioni simplici à u decoder per assicurà chì e funzioni generate sò sintatticamente currette.

Facebook sviluppa TransCoder per traduce u codice da una lingua di prugrammazione à l'altru

I ricercatori anu prupostu una nova architettura di rete neurale "Transformer" per sequenze di modellazione, in quale a recurrenza hè rimpiazzata da "attenzione"(Model seq2seq cun attenzione), chì vi permette di sbarazzà di alcune dipendenze in u graficu computazionale è parallelizà ciò chì prima ùn era micca suscettibile à a parallelizazione. Tutte e lingue supportate utilizanu un unicu mudellu cumunu, chì hè furmatu cù trè principii - inizializazione, mudeli di lingua è traduzzione in daretu.

Facebook sviluppa TransCoder per traduce u codice da una lingua di prugrammazione à l'altru

Source: opennet.ru

Add a comment