Este artículo detalla un experimento sorprendente sobre la búsqueda de errores en compiladores, utilizando modelos de lenguaje avanzados como ChatGPT y Claude. Justin Lebar, un experto en compiladores con experiencia en Google, Waymo y OpenAI, descubrió que podía encontrar una cantidad significativa de errores, incluyendo miscompilaciones (errores donde el compilador genera código incorrecto), de manera mucho más eficiente de lo esperado.
Inicialmente, Lebar intentó encontrar errores en el compilador de NVIDIA (ptxas) utilizando un fuzzer, un programa que genera código aleatorio y verifica si la compilación produce el resultado esperado. Aunque esperaba resultados modestos, encontró rápidamente una gran cantidad de miscompilaciones. La clave de este éxito fue el uso de modelos de lenguaje más avanzados (ChatGPT 5.5 y Claude Opus 4.7) para automatizar tareas como la generación de pruebas, la minimización de los casos de error y la adaptación del fuzzer para evitar repetir errores. Esto permitió a Lebar encontrar errores a un ritmo mucho mayor que con métodos tradicionales.
Posteriormente, Lebar extendió su búsqueda a LLVM, el compilador subyacente de varios lenguajes y herramientas, y a su backend para AMDGPU. Los resultados fueron igualmente impactantes. Lo más sorprendente fue cuando Lebar utilizó Claude para analizar directamente el código de LLVM, asignándole la tarea de encontrar errores. Este enfoque resultó ser aún más efectivo, encontrando errores a un ritmo de uno cada cuatro minutos, superando con creces la eficiencia del fuzzer. Un ejemplo particularmente preocupante fue la conversión accidental de una operación atómica (garantiza que una operación se complete por completo o no se complete en absoluto) en dos operaciones no atómicas, lo que podría llevar a corrupción de datos.
El artículo plantea preguntas importantes sobre la eficiencia de los métodos de depuración automatizados y el papel de los modelos de lenguaje en la detección de errores. Si bien el costo de utilizar estos modelos puede ser considerable (Lebar gastó más de $10,000 en unas pocas horas), el potencial para encontrar errores críticos y mejorar la calidad del software es significativo. La experiencia de Lebar sugiere que la combinación de la inteligencia artificial y la experiencia humana puede revolucionar la forma en que se desarrollan y mantienen los compiladores, y posiblemente, el software en general.
