Malbolge est un langage de programmation dans le domaine public inventé par Ben Olmstead en 1998, nommé d'après le huitième cercle de l'Enfer dans la Divine Comédie de Dante, le Malebolge.
La particularité de Malbolge est qu'il a été conçu pour être le langage de programmation le plus difficile et le plus exotique possible. Toutefois, certaines des astuces utilisées pour rendre la compréhension difficile peuvent être simplifiées.
Malbolge était si difficile à comprendre quand il est arrivé qu'il a fallu deux ans au premier programme Malbolge pour apparaître. Le programme lui-même n'a pas été écrit par un être humain : il a été généré par un algorithme de recherche par faisceaux conçu par Andrew Cooke et implémenté en Lisp.
Le , Anthony Youhas annonça sur son blog qu'il a « battu Malbolge avec un bâton et maîtrisé ses secrets », fournissant des preuves sous forme de trois programmes Malbolge qui affichent diverses phrases. il ne révéla toutefois pas ses techniques.
Plus tard, Lou Scheffer posta une cryptanalyse de Malbolge et fournit un programme pour copier son entrée vers sa sortie.
Olmstead croyait Malbolge Turing-complet, sauf pour de la mémoire infinie. Une discussion a visé à déterminer si l'on pouvait implémenter des boucles en Malbolge ; il a fallu de nombreuses années avant de trouver un programme qui ne termine pas.
Le , Tomasz Wegrzanowski écrivit un générateur de programmes Malbolge affichant diverses chaînes de caractères. D'après lui, l'astuce est d'oublier les sauts, de garder le registre D à des endroits bas de la mémoire, et d'effectuer aléatoirement des opérations NOP, ROT et Crazy jusqu'à ce que le registre A contienne ce dont on a besoin. Les programmes produits avec cette technique sont bien plus grands que ceux de Youhas.
(=
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Un langage de programmation exotique est un langage de programmation imaginé comme un test des limites de la création de langages de programmation, un exercice intellectuel ou encore une blague, sans aucune intention de créer un langage réellement utile. De tels langages sont souvent un passe-temps pour les hackers ou les programmeurs. L'adjectif « exotique » permet de distinguer ces langages de ceux communément utilisés dans l'industrie.