Canonical y Bristol buscan traducir C a Rust con IA

Una pregunta de tres años que vale millones en código legacy

Canonical, la empresa detrás de Ubuntu, se asoció con la Universidad de Bristol y el organismo público británico UK Research and Innovation para cofinanciar un doctorado de tres años que investigará si un modelo de lenguaje puede traducir bases de código en C de cientos de miles de líneas a Rust seguro, idiomático y mantenible. El anuncio lo hizo Jon Seager, VP de ingeniería de Canonical, en el foro Discourse de Ubuntu.

El doctorando es Alex Wood, supervisado por Seager, el profesor Meng Wang y la doctora Cristina David, ambos del Programming Languages Research Group de Bristol. No es un proyecto para reescribir Ubuntu mañana: es una apuesta por generar evidencia sobre algo que el propio Seager describe como "caro y arriesgado" si se hace a mano.

La pregunta no es retórica. Canonical ya movió fichas en Rust dentro de su propia distro: Ubuntu 25.10 adoptó sudo-rs (una reescritura humana del comando sudo en Rust) y la suite uutils coreutils. Ambos proyectos son reemplazos escritos a mano por humanos, no traducciones automáticas. Este doctorado es la pregunta siguiente: ¿puede una IA hacer ese trabajo a escala sin destruir la lógica acumulada del código original?

🤖 La IA no es solo para leer sobre ella

En la comunidad la aplicamos: automatización, agentes IA y herramientas reales para emprender, no solo para informarte.

👥 Aplicarla en la comunidad

Por qué traducir C a Rust no es trivial

El problema de fondo es la deuda técnica en C. Lenguajes como C ofrecen control fino sobre memoria y rendimiento, pero dejan abiertas clases enteras de vulnerabilidades: desbordamientos de buffer, use-after-free, lecturas fuera de límites. Sistemas operativos, navegadores y casi todo el software de infraestructura crítica siguen escritos mayoritariamente en C, y reescribirlos a mano cuesta años y millones.

Según Seager, las herramientas tradicionales de traducción fuente-a-fuente procesan mucho código, pero "preservan la estructura del C demasiado literalmente": el resultado compila como Rust, pero depende heavily de bloques unsafe, conserva modismos de C y requiere intervención humana antes de parecerse a algo que un maintainer de Rust querría mantener. Por su parte, los LLM generan "Rust idiomático y convincente" pero pelean con el contexto a escala de repositorio y, lo más importante, una salida plausible no es evidencia de que el programa traducido se comporte como el original.

El proyecto propone combinar ambas técnicas en una arquitectura de cuatro componentes: scheduling (dividir el repositorio en chunks con contexto suficiente sobre tipos y dependencias), translation (modelos entrenados contra una librería de traducciones C-a-Rust conocidas), validation (verificar que el código traducido se comporta como el original) y debugging and repair (analizar y corregir errores). El LLM es solo una pieza; el código generado se trata como no confiable hasta que haya evidencia de su equivalencia, según reportó InfoWorld.

Los casos de estudio serán dos componentes de seguridad de Ubuntu: AppArmor (el sistema de control de acceso obligatorio) y snap-confine (la pieza que aísla los paquetes snap). Seager aclara que no es un compromiso de reemplazar esos componentes con lo que salga del proyecto, sino una muestra de que Canonical tiene interés real en los resultados.

No están solos: la presión global por salir de C

El movimiento para sacar C del software crítico tiene varios frentes abiertos. La Casa Blanca publicó en febrero de 2024 un informe técnico que recomienda discontinuar el uso de C en favor de lenguajes memory-safe, según EurekAlert. En la misma línea, DARPA, la agencia de investigación del Departamento de Defensa de EEUU, lanzó un programa explícito para desarrollar tecnología de conversión automática de C a Rust.

El equipo del KAIST (Corea del Sur), liderado por la profesora Sukyoung Ryu, lleva años publicando trabajos sobre conversión automática con un enfoque distinto al de los LLM: en lugar de generar código plausible, sus técnicas demuestran matemáticamente la corrección de la conversión. Su paper "Automatically Translating C to Rust" fue portada de Communications of the ACM (CACM), con el Dr. Jaemin Hong como primer autor y DOI 10.1145/3737696.

En la industria privada, Meta viene reescribiendo la infraestructura de mensajería móvil en Rust, reemplazando un runtime en C que ingenieros describieron como "espagueti" — funciones de cientos de líneas con bookkeeping manual de memoria. Según InfoQ, los ingenieros citan tres motores: seguridad de memoria, felicidad del desarrollador y mantenibilidad a largo plazo. Cloudflare y Google han llegado a conclusiones parecidas en sus propias migraciones, con equipos reportando desarrollo más rápido y código más fácil de razonar.

¿Qué significa esto para tu startup?

Tres años es mucho tiempo en tecnología, pero el output del proyecto será open source. Si tu startup tiene código en C o maneja infraestructura crítica, este trabajo puede cambiar el costo de modernizarlo en el futuro cercano.

Acciones concretas que puedes tomar hoy:

  • Audita tu codebase en busca de código memory-unsafe. Aunque no migres a Rust, identificar dónde están las funciones con malloc/free manual, aritmética de punteros o buffers fijos te da una radiografía clara del riesgo. Herramientas como AddressSanitizer, Valgrind o el Clang Static Analyzer son estándar y gratuitas.
  • Empieza con un piloto pequeño en Rust, no con una migración masiva. Reescribe un módulo crítico de tamaño manejable —un parser, un validador, un endpoint— y mide el tiempo real de desarrollo, bugs en producción y satisfacción del equipo. Eso te da datos para decidir si escalar, sin exponerte al riesgo de un proyecto multi-año.
  • No confíes ciegamente en traductores automáticos. Herramientas como c2rust existen y funcionan para generar un primer borrador, pero el output casi siempre requiere intervención humana. Trata cualquier traducción automática como código no confiable hasta validar su comportamiento con tests, y mantén el original en C como referencia hasta tener evidencia de equivalencia funcional.

La lección de fondo: Canonical puso dinero detrás de una pregunta que muchos solo se animan a plantear en slides. Lo que salga de Bristol, KAIST y DARPA en los próximos años va a definir qué tan realista es migrar el software legacy de C a Rust sin perder los quirks que mantienen vivo al código maduro.

Fuentes

🤖 La IA no es solo para leer sobre ella

En la comunidad la aplicamos: automatización, agentes IA y herramientas reales para emprender, no solo para informarte.

👥 Aplicarla en la comunidad

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, todos los días.

Share to...