Reconocimiento de voz, procesamiento del lenguaje natural y sistemas de traducción entre diferentes idiomas. La Inteligencia Artificial ha avanzado mucho en el reconocimiento, tratamiento y traducción de los lenguajes humanos pero, ¿qué pasa con los que emplean las máquinas?
La Inteligencia Artificial también podría servir de ayuda para entender, desarrollar e implementar código. Pero convertir las líneas que están desarrolladas en un lenguaje a otro no siempre es fácil. Si lo fuera, modernizar aplicativos que están en Cobol a lenguajes más modernos como Python sería relativamente sencillo.
Con el fin de que la IA aprenda el contexto y las reglas en las que se basa cada lenguaje de programación, IBM ha lanzado el Proyecto CodeNet, un conjunto masivo de código fuente para entrenar a programas de aprendizaje automático sobre programación.
55 lenguajes reunidos
Según IBM, el dataset contiene 14 millones de muestras de código, con más de 500 millones de líneas de más de 55 lenguajes de programación, como Java, C++ y Go, pero también COBOL, Pascal y FORTRAN.
IBM quiere que este conjutno de datos se utilice para entrenar a la IA y que esta pueda entender mejor los sistemas basados en reglas de cada lenguaje, con el fin de que la traducción de lenguajes de programación sea más fácil.
Tal y como explica la compañía, “si los sistemas basados en reglas funcionaran, los primeros lenguajes de programación como COBOL ya se habrían convertido”. El problema es que los lenguajes de programación tienen contexto. “El significado de cualquier declaración está relacionado con el contexto, y derivarlo y hacer la traducción, al igual que en los lenguajes humanos, es complicado y requiere mucho tiempo”, detalla IBM.
Un problema que se agranda cuanto mayor y más grande sea el programa sobre todo porque el contexto puede relacionarse con múltiples bibliotecas de código.
IBM cree que Project CodeNet puede valer como referencia cuando haya que hacer una traducción de fuente a fuente o cuando haya que hacer una modernización de las bases de código heredadas.
"Este conjunto de datos no solo es único en su escala, sino también en la diversidad de tareas de codificación que puede ayudar a comparar: desde similitud de código y clasificación para avances en algoritmos de recomendación de código, y traducción de código entre una gran variedad de lenguajes de programación, hasta avances en técnicas de mejora del rendimiento del código", aseguran los autores de este dataset.
Comments