https://www.anthropic.com/engineering/b ... dium=email
https://github.com/anthropics/claudes-c-compiler
Quite impressive but still far from completed ![]()
https://www.anthropic.com/engineering/b ... dium=email
https://github.com/anthropics/claudes-c-compiler
Quite impressive but still far from completed ![]()
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_arithmeticha 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:
list_files(): Ver qué archivos había en el repo.read_file(path): Leer el código existente.write_file(path, content): Escribir el nuevo código.execute_command("cargo test"): Probar su trabajo.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:
-O0).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?