https://www.anthropic.com/engineering/building-c-compiler?utm_source=substack&utm_medium=email
https://github.com/anthropics/claudes-c-compiler
Quite impressive but still far from completed :wink:
https://www.anthropic.com/engineering/building-c-compiler?utm_source=substack&utm_medium=email
https://github.com/anthropics/claudes-c-compiler
Quite impressive but still far from completed :wink:
El proyecto CCC (Claude's C Compiler) no utiliz贸 un 煤nico "prompt m谩gico", sino que se bas贸 en una arquitectura de agentes aut贸nomos que interactuaban entre s铆.
En lugar de darle instrucciones directas de c贸digo, Anthropic configur贸 un sistema donde los agentes de Claude ten铆an un objetivo de alto nivel y herramientas para ejecutar comandos en una terminal, leer/escribir archivos y ejecutar tests.
Aqu铆 te detallo la estructura de los prompts y la metodolog铆a que usaron:
El prompt inicial defin铆a el objetivo final sin dar instrucciones paso a paso. Se ve铆a algo as铆:
"Tu objetivo es escribir un compilador de C desde cero en Rust. Debe ser capaz de compilar SQLite, Doom y el Kernel de Linux. No puedes usar LLVM. Debes implementar tu propio frontend, pasadas de optimizaci贸n y backends para x86_64, ARM64 y RISC-V. Trabaja de forma iterativa y aseg煤rate de que todos los tests pasen."
Anthropic utiliz贸 una configuraci贸n de Agentes Paralelos. Los prompts de sistema defin铆an roles:
Lo m谩s importante no fue el prompt de escritura de c贸digo, sino el prompt de correcci贸n. Cuando un test fallaba, el sistema enviaba al modelo un prompt como este:
"El test
test_pointer_arithmetic ha fallado con el siguiente error de salida: [Error]. Revisa el archivosrc/codegen/x86.rs , identifica el fallo de l贸gica y corr铆gelo. No rompas la compatibilidad con los tests anteriores."
M谩s que "prompts" tradicionales de chat, usaron definiciones de herramientas. Claude ten铆a acceso a una API de funciones que le permit铆a:
Utilizaron la capacidad de Claude (espec铆ficamente Claude 3.5/4.5/4.6) para generar un bloque de pensamiento (Chain of Thought) antes de actuar. El prompt obligaba a la IA a:
En resumen: El "prompt" fue en realidad un entorno de ejecuci贸n. Anthropic no le dijo a Claude c贸mo escribir el compilador, sino que le dio las reglas del juego (las especificaciones de C y los tests de 茅xito) y dej贸 que la IA "jugara" hasta ganar, gastando miles de d贸lares en tokens en el proceso de ensayo y error.
Este proyecto es un hito fascinante en la ingenier铆a de IA, no tanto por el compilador en s铆, sino por c贸mo se construy贸.
El CCC (Claude's C Compiler) es un experimento de Anthropic para demostrar la potencia de sus nuevos agentes paralelos y el modelo Claude 4.6. B谩sicamente, pusieron a un "equipo" de IAs a trabajar de forma aut贸noma en un repositorio de Rust para crear un compilador de C desde cero.
Aqu铆 te doy mi an谩lisis de lo bueno, lo malo y lo puramente t茅cnico:
A pesar de lo espectacular que suena, el proyecto tiene "asteriscos" importantes que Anthropic admite honestamente:
Este proyecto marca el fin de la era de la IA como simple "autocompletado" y el inicio de la era de los Sistemas Ag茅nticos.
Tradicionalmente, le pides a una IA que escriba una funci贸n. Aqu铆, le pides a un sistema que "construya un producto", y el sistema se organiza a s铆 mismo, crea ramas en Git, gestiona bloqueos de archivos (locks) y resuelve bugs de forma iterativa hasta que pasan los tests.
Mi opini贸n personal: Es un "flex" (una demostraci贸n de fuerza) t茅cnico incre铆ble. Como compilador, nadie lo usar谩 para producci贸n teniendo a GCC o Clang, pero como prueba de concepto de que la IA puede manejar la complejidad sist茅mica de un proyecto de 100,000 l铆neas de c贸digo, es un antes y un despu茅s.
驴Te gustar铆a que analiz谩ramos alguna parte espec铆fica de su arquitectura, como su sistema de optimizaci贸n SSA o c贸mo maneja los diferentes backends?