En español
Un Transformer es un modelo de Aprendizaje Profundo creado en 2017 con el objetivo de realizar traducciones entre lenguajes naturales. Las innovaciones que introdujo, particularmente la de auto-atención, han permitido construir prototipos que tienen una noción intuitiva del contexto, y comprenden el significado y los patrones subyacentes del lenguaje. En 2020 OpenAI hizo público GPT-3, un modelo preentrenado enfocado hacia la generación de lenguaje, que mostró resultados prometedores, creando textos con una calidad tal que se hace difícil distinguir si fueron escritos por un humano o por una máquina. Podemos afirmar que el código fuente es texto generado en un lenguaje formal, y por lo tanto podría ser generado con herramientas basadas en estos prototipos.
Este trabajo presenta un estudio de la evolución y el estado del arte en este campo: la generación automática de código fuente a partir de especificaciones escritas en lenguaje natural. Recorremos diferentes casos, su éxito, las dificultades de encontrar mecanismos de evaluación y su posible implementación en un futuro por las empresas.
En inglés
A Transformer is a Deep Learning model created in 2017 with the aim of performing translations between natural languages. The innovations introduced, particularly the self-attention mechanism, made it possible to build prototypes that have an intuitive notion of context and understanding of the meaning and underlying patterns of the language. In 2020 OpenAI released GPT-3, a pretrained model focused on language generation, which showed promising results, creating text with a quality that made it difficult to distinguish whether they were written by a human or by a machine. As the source code is text generated in a formal language, it could be generated with tools based on these prototypes. This work presents a study of the evolution and the state of the art in this field: the automatic generation of source code from specifications written in a natural language.
We navigate through different cases, their success, the difficulties of finding test mechanisms and their possible implementation in the future by companies.