Inteligencia artificial para la conversión entre lenguajes de programación

(Para Alessandro Rugolo)
03/08/20

Ya no nos sorprendemos cuando escuchamos sobre Inteligencia artificial, como predijo Alan Turing hace 70 años, en su ensayo "Computing Machinery and Intelligence". Ni siquiera nos sorprende ver la evolución de un robot antropomórfico, equipado con sensores, capaz de hablar, escribir, jugar al ajedrez o realizar las tareas más dispares.

La tecnología avanza rápidamente y estamos a un paso de ver una nueva raza, más evolucionada, la de los cyborgs circulando entre la raza humana ...

Puede pensar, a primera vista, que las líneas que acaban de leer provienen de una antología de lo fantástico, de aquellos que estaban en boga hace treinta años entre los lectores acalorados de las playas italianas, pero no es así, es una realidad.

La Inteligencia Artificial ha pasado la fase de prueba y se está preparando para ingresar con fuerza en nuestra vida cotidiana, la vida cotidiana del hombre en la calle y la vida laboral de las empresas.

Desde el mundo de las redes sociales, facebook, existe una novedad sobre el uso de la Inteligencia Artificial: el "Transcodificador de IA de Facebook". Veamos de qué se trata.

Son los investigadores de Facebook que han creado el primer "Neural Transcompiler", un conversor de código para lenguajes de programación. Es un sistema basado en IA capaz de convertir el código de lenguajes de programación de alto nivel (Java, Python, C ++ ...) a otros lenguajes de programación y viceversa.

El sistema creado pertenece a la categoría llamada "Sin supervisión", es decir, sin la necesidad de instrucción sobre datos de entrenamiento y, en teoría, sin la necesidad de supervisión humana.

Se siente mucho la necesidad de convertir código de programación entre diferentes lenguajes. Con la evolución de la tecnología de la información y el desarrollo de diferentes lenguajes de programación, se ha visto que la transición a nuevos sistemas o plataformas de información no siempre fue barata y factible debido a la falta de conocimiento de lenguajes de programación más antiguos.

Para el paso de grandes sistemas, por ejemplo los bancarios, los costos se han vuelto exorbitantes y aquí podría entrar en juego lo nuevo transcompilador neural.
El nuevo sistema se basa en el uso de un "lenguaje multilingüe" (para la fase de pre-entrenamiento) que mapea expresiones con significado similar de los diferentes lenguajes de programación.

La precisión del nuevo sistema es muy alta, al menos en la transición entre C ++ y Java (alcanza el 74,8%), mientras que cae al 67,2% cuando se trata de pasar de C ++ a Python.
Incluso se obtienen mejores resultados en la transición de Java a C ++ (91,6%).
Precisión más modesta para la transición de Python a Java (56,1%) y de Python a C ++ (57,8%).

En el mundo industrial y militar, no es extraño encontrar sistemas de décadas de antigüedad aún en uso debido a la imposibilidad de conversión y los enormes costos en los que se incurre para la modernización, en este sector del mercado, no pequeño, se posiciona el nuevo instrumento.
Tomará algún tiempo mejorar la precisión del sistema, especialmente para la conversión de sistemas hechos con idiomas más antiguos a los más recientes, pero el camino parece definitivamente abierto.

Desde el punto de vista de la seguridad, este es un asunto completamente diferente y deberá estudiarse de un caso a otro.

Para obtener más información:
https://medium.com/@learnbay/facebooks-ai-transcoder-6299a62bf222
https://medium.com/@learnbay/facebooks-ai-transcoder-6299a62bf222
https://www.infoq.com/news/2020/06/facebook-ai-transpiler/
https://medium.com/swlh/transcoder-facebooks-unsupervised-programming-la...