Malbolge

Se llamó así por el octavo círculo del infierno en La Divina Comedia, escrito por Dante.

[3]​ Más tarde, Lou Scheffer publicó un criptoanálisis de Malbolge y proporcionó un programa para copiar su entrada a su salida.

[4]​ También guardó el intérprete original y la especificación después de que el sitio original dejara de funcionar, y ofreció una estrategia general para escribir programas en Malbolge, así como algunas ideas sobre su integridad Turing .

[6]​ El mismo autor también propuso una guía para la programación en Malbolge con el propósito de ofuscación para la protección del software.

El lenguaje Malbolge tiene una especificación oficial[11]​ y un intérprete de referencia programado en C por el propio autor.

[12]​ La especificación y el intérprete no coinciden a la perfección: por ejemplo, los códigos de operación correspondientes a la lectura e impresión de datos son 5 y 23 respectivamente en la especificación, pero están invertidos en el intérprete.

No está claro si estas diferencias son un simple error, o un intento deliberado de hacer el lenguaje aún más confuso.

El valor de los registros C y D se incrementa en 1 tras ejecutar cada instrucción.

En adelante, C indica el valor literal almacenado en el registro, mientras que [C] indica el valor presente en la dirección de memoria C. Las mismas consideraciones aplican al registro D. La máquina virtual tiene 59.049 (310) direcciones de memoria.

Al igual que en las arquitecturas x86 actuales, la máquina virtual sigue la arquitectura Von Neumann, es decir, las instrucciones a ejecutar y los datos sobre los que operan comparten el mismo espacio de memoria.