Présentation

Bend est un langage de programmation récent qui se veut à la fois rapide et sécurisé face aux agents d’intelligence artificielle. Il s’appuie sur une compilation native, un vérificateur de preuves intégré et un runtime capable de s’étendre automatiquement sur tous les cœurs disponibles ainsi que sur le GPU. Le projet se positionne comme une réponse aux risques d’erreurs introduites par les IA génératives, en imposant des lois formelles que le code doit satisfaire avant d’être accepté.

Architecture et performances

Sur un seul cœur, le binaire produit par Bend atteint une vitesse d’exécution « presque aussi rapide que C », selon les mesures publiées sur un processeur Apple M4 Max. Le même binaire, lorsqu’il est lancé sur seize cœurs, conserve cette performance, et lorsqu’il est dirigé vers le GPU, il peut être jusqu’à cent fois plus rapide qu’une exécution monothread. Cette accélération provient d’un runtime parallèle qui répartit automatiquement les appels sur chaque unité de calcul disponible, sans que le développeur n’écrive de threads, de verrous ou de kernels CUDA explicites.

Le processus de compilation est également optimisé : le vérificateur de types, qui agit comme un proof checker similaire à Lean ou Coq, analyse un projet de taille moyenne en moins d’une seconde. Les systèmes de preuve traditionnels peuvent prendre plusieurs minutes sur le même code‑base, ce qui rend Bend particulièrement adapté aux boucles de développement pilotées par des agents IA, qui peuvent ainsi re‑vérifier le code à chaque modification.

Mécanisme de preuve et blocage des IA

Le cœur de la sécurité de Bend réside dans le fichier LAWS.bend. L’utilisateur y déclare des lois formelles – par exemple, « aucune séquence de coups ne doit mener à la victoire ». Le compilateur transforme chaque loi en un théorème que le moteur de preuve doit valider avant d’accepter le code généré par l’IA. Si l’IA propose une modification qui viole la loi, la compilation échoue et le changement est rejeté.

LAW: winning is impossible

law you_cant_win : for moves: List<Move>
  # any sequence of moves
  board = replay(start(), moves)
  is_won(board) == False {}

Le fichier PROOF.bend contient la preuve correspondante, écrite automatiquement ou assistée par l’IA :

# PROOF: you_cant_win holds.
def Laws.you_cant_win (moves):
    # ... generated by the AI

Cette approche rend mathématiquement impossible la production d’un code qui enfreint les lois, car chaque modification doit être accompagnée d’une preuve vérifiable.

Limites et perspectives

Malgré ses promesses, Bend reste en phase de pré‑production. Le projet indique explicitement qu’il fonctionne « au mieux sur le back‑end, sous Linux et macOS », ce qui laisse entendre une prise en charge limitée des environnements Windows ou des systèmes embarqués. De plus, la dépendance à un runtime parallèle propriétaire signifie que les performances GPU sont mesurées sur du matériel Apple M4 Max ; les gains sur d’autres architectures (NVIDIA, AMD) ne sont pas documentés.

Enfin, la robustesse du système de lois dépend de la capacité du développeur à formuler des contraintes complètes. Une loi mal définie peut bloquer des comportements légitimes ou laisser des failles non couvertes. Le modèle repose donc sur une collaboration étroite entre l’humain et l’IA, où la clarté des spécifications reste le facteur déterminant.