Bend es un lenguaje de programación construido sobre la premisa de que, a medida que los agentes de IA generan cada vez más software, los humanos necesitan una forma de verificar que el código resultante implemente correctamente sus intenciones. El lenguaje introduce un mecanismo donde los desarrolladores declaran 'leyes': reglas precisas y sin ambigüedades que la aplicación nunca debe violar. Por ejemplo, un desarrollador podría declarar una ley que establezca que un estado de juego específico es imposible de alcanzar. Cuando un agente de IA intenta modificar el código, el compilador de Bend actúa como un guardián: bloqueará cualquier fusión que viole estas leyes a menos que la IA también proporcione una prueba matemática de que el nuevo código las satisface.

Un personaje de jugador en un entorno de juego caminando hacia una pared.
Una demostración de un estado de juego donde un jugador interactúa con un límite definido por una 'ley'.github.com

Esta visualización ilustra el concepto de declarar 'leyes' para evitar estados de juego imposibles.

Un personaje de jugador envolviéndose alrededor del borde de un juego para alcanzar una bandera.
Un escenario que muestra un error donde un jugador elude un límite, ilustrando una violación de la lógica prevista.github.com

Esta imagen demuestra el tipo de error que las 'leyes' del compilador Bend están diseñadas para prevenir.

Una pared en el borde lejano de un nivel de juego deteniendo a un personaje de jugador.
El estado de juego corregido donde una 'ley' evita con éxito que el jugador se envuelva alrededor del borde.github.com

Esta visualización muestra la aplicación exitosa de una ley matemática para mantener la integridad del juego.

El núcleo técnico de Bend es su compilador, que funciona como un verificador de pruebas de alta velocidad. Mientras que los asistentes de prueba tradicionales como Lean o Rocq pueden tardar minutos en verificar una base de código de tamaño mediano, Bend está diseñado para realizar estas comprobaciones en menos de un segundo. Esta velocidad permite a los agentes de IA verificar la corrección después de cada cambio incremental. Además, Bend está diseñado para un alto rendimiento, compilando a código nativo que se ejecuta casi tan rápido como C en un solo núcleo de CPU. También admite un paralelismo masivo, permitiendo que el código se ejecute en miles de núcleos de GPU sin necesidad de gestión manual de hilos o escritura de kernels, ya que el lenguaje maneja la distribución del trabajo automáticamente.

Un gráfico de referencia comparando el rendimiento del verificador de Bend frente a Isabelle, Agda, Lean y Rocq.
Resultados de referencia que muestran la verificación de pruebas de alta velocidad de Bend en comparación con los asistentes de prueba tradicionales.github.com

Este gráfico respalda la afirmación de que Bend realiza comprobaciones en menos de un segundo, mucho más rápido que las herramientas tradicionales.

Un gráfico de referencia de tiempo de ejecución comparando el rendimiento de Bend con C, TypeScript y Lean en múltiples núcleos y GPUs.
Benchmarks de rendimiento de tiempo de ejecución que demuestran la velocidad nativa de Bend y su paralelismo en GPU.github.com

Este gráfico ilustra la capacidad de Bend para ejecutarse casi tan rápido como C y su soporte para un paralelismo masivo en GPU.

Una animación que muestra la división de potencias de dos sobre 4,096 núcleos de GPU y su plegado de nuevo.
Una visualización de la distribución automática de trabajo de Bend a través de miles de núcleos de GPU.github.com

Esta animación demuestra la capacidad del lenguaje para manejar un paralelismo masivo sin gestión manual de hilos.

A pesar de su promesa de código 'libre de errores', el uso de Bend implica compensaciones específicas y obstáculos prácticos. Debido a que el lenguaje requiere pruebas formales, incluso las operaciones aritméticas básicas pueden requerir que el desarrollador o la IA definan propiedades fundamentales. Por ejemplo, un usuario informó que un agente de IA tuvo dificultades con ciertas leyes aritméticas porque la biblioteca base carecía de una teoría de orden completa, lo que obligó a la IA a escribir pruebas estructuralmente recursivas para funciones básicas como los valores máximos. Además, si bien Bend proporciona un marco robusto para verificar la intención, la complejidad de definir estas 'leyes' para sistemas altamente intrincados sigue siendo una consideración significativa para los desarrolladores que se alejan de las especificaciones en lenguaje natural. El proyecto se encuentra actualmente en una etapa temprana, y la falta de un historial de commits público ha sido señalada como un punto a considerar para aquellos que evalúan su desarrollo y fiabilidad a largo plazo.