Facebook desarrolla transcodificador que migra de lenguaje sin supervisión humana

Un grupo de investigadores de Facebook han desarrollado un transcodificador neuronal. Este sistema migra el código de un lenguaje de programación de alto nivel en código de otro lenguaje de alto nivel.

Lo impresionante de esto es que esta operación se realiza casi sin supervisión humana, buscando patrones aún no detectados en los sets de datos. Los resultados son superiores a los conseguidos con sistemas basados en reglas.

Los costos de los cambios

La migración de un sistema de un lenguaje a otro es un proceso complejo y muy costoso. Un ejemplo ilustrador es el del Commonwealth Bank de Australia, que necesitó unos 5 años y USD 750 millones para pasar su plataforma de COBOL a Java.

Aunque los sistemas de migración automatizados son de gran ayuda, las diferencias en las sintaxis de los lenguajes, funciones de bibliotecas y otros tantos detalles hacen que estas herramientas sean costosas.

La solución de Facebook

El transcodificador de Facebook trabaja con C++, Java y Python.

El sistema ha sido entrenado con un modelo multilenguaje para identificar fragmentos de código que expresan las misma instrucciones. Algunas palabras en común resultan claves para esta operación, los términos en inglés if, for, while, etcétera. Algo similar ocurre con los operadores matemáticos.

Un segundo proceso de entrenamiento le enseña al sistema a generar secuencias de código válidas aun cuando recibe datos con cierta cantidad de ruido.

Al mismo tiempo el sistema genera datos que pueden ser utilizados para el entrenamiento. Los datos son comparados con un resultado objetivo esperado.

Resultados

Los resultados obtenidos están lejos de ser ideales, pero son prometedores. Las conversiones de C++ a Java, coincidieron en un 74,8% con el código objetivo. Las de C++ a Python un 67,2%.

De Java a C++ se consiguió un 91,6% de acierto, de Java a Python un 68,7%.

De Python a Java se obtuvo un 56,1% y de Python a C++ un 57,8%.

Según los desarrolladores el transcodificador demostró entender la sintaxis de los lenguajes así como la estructura de los datos, y manejó correctamente las bibliotecas al mismo tiempo que se adaptaba a la necesidad de ciertas modificaciones.

El programa es capaz de reconocer patrones complejos. Algunos de sus errores se estima que podrán ser corregidos fácilmente.


¿Quieres aprender a programar de manera profesional?

 

Te invitamos a formar parte de Azul School donde vas a tener acceso a cursos profesionales con certificado. Además tienes acceso a una red social de programadores donde puedes conocer gente de tu ciudad o país.

 

Si quieres acceder a todas las funciones te regalamos un descuento del 75% usando este cupón (no vas a encontrar este descuento en ningún otro lugar) Cupón: azulweb y lo puedes cambiar aquí: Haz clic aquí para cambiar el cupón del 75%.

 

También puedes probar la plataforma de forma gratuita y obtener un curso gratuito aquí: Haz clic aquí para probar la plataforma de forma gratuita.


Ernesto Mota

Ernesto Mota

Nací en el d.f., sigo siendo defeño, hoy radico en la hermosa ciudad de Cuernavaca, Morelos, soy Ing. en Sistemas computacionales, con un posgrado en Tecnologías de información, Doctorando en ambientes virtuales de aprendizaje y realidad aumentada, Tecnólogo es mi categoría laboral, y mi linea de investigación es la realidad aumentada aplicada a nuevos entornos de aprendizaje.

También te podría gustar...