Malbolge

De Wikipedia, la enciclopedia libre
Malbolge


Un programa eco en Malbolge
Ben Olmstead[1]
Información general
Extensiones comunes .mal, .mb
Paradigma Esotérico, imperativo, escalar, nivel de valor
Apareció en 1998
Diseñado por Ben Olmstead[1]
Influido por Brainfuck, INTERCAL (Tri-INTERCAL), Befunge
Ha influido a Dis, Malbolge Unshackled

Malbolge ( /mælˈbl/) es un lenguaje de programación esotérico de dominio público desarrollado por Ben Olmstead en 1998. Se llamó así por el octavo círculo del infierno en La Divina Comedia, escrito por Dante.

Malbolge es peculiar porque se diseñó para ser el lenguaje más difícil, a través de una 'operación loca' contraria a la intuición, aritmética de base tres y código autoalterable[2]​. Sin embargo, varios de los trucos utilizados para hacerlo difícil de entender pueden ser evitados y generar programas útiles en el.

Programación en Malbolge[editar]

Malbolge fue muy difícil de entender cuando llegó. Pasaron dos años hasta que apareció el primer programa de Malbolge. El propio autor nunca ha escrito un programa de Malbolge.[2]​ El primer programa no fue escrito por un ser humano; fue generado por un algoritmo de búsqueda de haz diseñado por Andrew Cooke e implementado en Lisp[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 .[5]

Olmstead creía que Malbolge era un autómata linealmente acotado . Existe una discusión sobre si se pueden implementar bucles sensibles en Malbolge; pasaron muchos años antes de que se introdujera el primero sin terminación. Durante siete años no se anunció un programa correcto de 99 Bottles of Beer , que se ocupa de bucles y condiciones no triviales; el primero correcto fue el de Hisashi Iizawa en 2005.[6]​  Hisashi Iizawa et al. 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.[7]

En 2020, el usuario de GitHub kspalaiologos creó un intérprete de Lisp funcional en Malbolge Unshackled.[8]

Ejemplo[editar]

Código de ejemplo Hello World:[9]

 (=<`$9]7<5YXz7wT.3,+O/o'K%$H"'~D|#z@}b=`{^Lx8%$Xmrkpohm-kNi;gsedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543s+O<oLm

echo program[editar]

Este programa lee una cadena de un usuario e imprime esa cadena, similar a Unix echo[10]

(=BA#9"=<;:3y7x54-21q/p-,+*)"!h%B0/.
~P<
<:(8&
66#"!~}|{zyxwvu
gJ%

Referencias[editar]

  1. a b «Malbolge - Esolang». Consultado el 27 de agosto de 2022. 
  2. a b «Interview with Ben Olmstead». esoteric.codes (en inglés). 3 de noviembre de 2014. Consultado el 23 de enero de 2023. 
  3. Cooke, Andrew. «malbolge: hello world». Archivado desde el original el 6 de diciembre de 2019. Consultado el 23 de enero de 2023. 
  4. «Programming in Malbolge». www.lscheffer.com. Consultado el 23 de enero de 2023. 
  5. http://progopedia.com/user/Nickolas. «Programming language Malbolge». progopedia.com (en inglés). Consultado el 23 de enero de 2023. 
  6. «Language Malbolge». 99 Bottles of Beer. 19 de noviembre de 2020. Archivado desde el original el 14 de mayo de 2020. Consultado el 23 de enero de 2023. 
  7. IIZAWA, Hisashi. «Programming Method in Obfuscated Language Malbolge» (en japones). Universidad de Nagoya. 
  8. Palaiologos (4 de marzo de 2021), kspalaiologos/malbolge-lisp, consultado el 23 de marzo de 2021 .
  9. Malbolge en The Hello World Collection.
  10. «Malbolge cat – lutter.cc». lutter.cc. Consultado el 23 de enero de 2023.