Lenguajes de programación esotéricos

¿Cansado del poco reto que representa hacer un compilador a mano? :P , ¿los lenguajes de programación convencionales no lo satisfacen o no son lo que eran antes?, pues tengo la solución para usted, lenguajes de programación esotéricos; si, escuchó bien, lenguajes de programación esotéricos, con ellos encontrara el reto que necesita y más, además podrá sacar al verdadero programador que lleva adentro y presumirle a sus amigos:
"Yo se programar en Ook¡ y no soy un orangután."
Solo mire lo que los lenguajes de programación esotéricos le ofrecen:

Existen muchos lenguajes de programación especialmente extraños, muchos de los cuales fueron desarrollados con el propósito de resultar divertidos (en vez de útiles) para los programadores. Estos lenguajes esotéricos (o exóticos) se crean como un pasatiempo para los desarrolladores, que intentan hacer lenguajes lo más alejados de la forma de razonar humana, pero que al mismo tiempo sean Turing completos. Algunos de estos lenguajes son:

* Befunge
* Brainfuck (jode-cerebros)
* INTERCAL
* Malbolge
* Ook!
* Unlambda
* Whitespace (espacio en blanco)
* Lenguaje de programación Oz
* Tink

Befunge es un lenguaje de programación esotérico, funge-oide, reflexivo y basado en pila. Difiere de los lenguajes convencionales en que los programas están dispuestos en una parrilla bidimensional. Las instrucciones "flecha" dirigen el control de flujo hacia arriba, abajo, izquierda o derecha, y los bucles se construyen dirigiendo el control de flujo en círculo.

¡Hola Mundo!:

> v
v ,,,,,"Hello"< >48*, v
v,,,,,,"World!"< >25*,@

Brainfuck (jodecerebros), es un lenguaje de programación esotérico, diseñado por Urban Müller en 1993, con el objetivo de hacer un lenguaje que fuera a la vez muy simple, Turing completo y que requiriese un compilador pequeño. Müller basó Brainfuck en la máquina de Turing y le sirvió de inspiración el compilador de 1024 bytes de tamaño del lenguaje FALSE.

¡Hello World!:

++++++++++
[ Bucle para iniciar el vector
>+++++++>++++++++++>+++>+<<<<- ] >++. imprime 'H'
>+. imprime 'e'
+++++++. 'l'
. 'l'
+++. 'o'
>++. espacio
<<+++++++++++++++. 'W' >. 'o'
+++. 'r'
------. 'l'
--------. 'd'
>+. '!'
>. nuevalínea


INTERCAL es un lenguaje de programación esotérico diseñado para ser extremadamente difícil de entender. Es una parodia de los lenguajes de programación FORTRAN y COBOL.

Hello World:

PLEASE DO ,1 <- #13
DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #112
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #238
DO ,1 SUB #7 <- #26
DO ,1 SUB #8 <- #248
DO ,1 SUB #9 <- #168
DO ,1 SUB #10 <- #24
DO ,1 SUB #11 <- #16
DO ,1 SUB #12 <- #158
DO ,1 SUB #13 <- #52

PLEASE READ OUT ,1
PLEASE GIVE UP



Malbolge 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. Sin embargo, varios de los trucos utilizados para hacerlo difícil de entender pueden ser evitados.

Hello World:

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk** hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<


Ook! (con el signo de exclamación) es un lenguaje de programación esotérico Turing completo. Este lenguaje es una parodia de Brainfuck, del que toma su conjunto completo de comandos (ver tabla). Deriva su completitud Turing de esta relación.

Según su diseñador, David Morgan-Mar, el lenguaje está diseñado para orangutanes. Tiene 3 palabras reservadas (Ook., Ook?, y Ook!); que pueden combinarse en ocho maneras diferentes para formar el repertorio de instrucciones del lenguaje. Ook! pretende ser fácil de aprender para los orangutanes y evitar cualquier mención de la palabra «mono».

Hola Mundo!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook?
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook?
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook.
Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.

Comentario de Brooklyn cuando se enteró de la existencia de este lenguaje:
¿De dónde chingados voy a sacar un orangután?
R=Si, como si no fuera obvia la respuesta :P

Unlambda es un lenguaje de programación inventado por David Madore. Este lenguaje es producto de la intersección entre dos lenguajes de programación "marginales".

* Lenguajes de programación ofuscados o lenguaje de programación esotérico, de los cuales el representante canónico es INTERCAL. Esto significa que este lenguaje fue diseñado para hacer la programación difícil y sufrida.
* Lenguajes de programación funcional, de los cuales el representante canónica es Scheme (un dialecto de Lisp). Esto significa que el único objeto manipulado por el lenguaje es la función.

Hello World:

`r```````````.H.e.l.l.o. .w.o.r.l.di


Whitespace es un lenguaje de programación esotérico desarrollado por Edwin Brady y Chris Morris. Publicado el 1 de abril de 2003. La sintaxis consiste únicamente en espacios en blanco, tabulador y líneas nuevas. Los demás carácteres son ignorados.

Hello World (Whitespace con realzado de sintaxis):


Oz es un lenguaje de programación multi-paradigma y Lenguaje_de_programación_esotérico.

Oz fue originalmente desarrollado en el laboratorio de Programación de Sistemas en la Universidad de Saarland por Gert Smolka y sus estudiantes a comienzos de 1990. En 1996 el desarrollo de Oz continuó en cooperación con el grupo de investigación de Seif Haridi en el Instituto Sueco de Ciencias de la Computación. Desde 1999, Oz ha sido continuamente desarrollado por un grupo internacional, el Consorcio Mozart, que estuvo compuesto originalmente por la Universidad de Saarland, el Instituto Sueco de Ciencias de la Computación, y la Universidad Católica de Louvain. En 2005, la responsabilidad de gestionar el desarrollo de Mozart fue transferida a un grupo base, el Tablero Mozart, con el propósito expreso de abrir el desarrollo de Mozart a una comunidad mayor.

Hello World:
declare
{Browse 'Hello World'}


Tink o Turing Ink (Tinta de Turing), es un lenguaje de programación esotérico, diseñado por José María Méndez en 2008. A diferencia de la mayoría de lenguajes de programación, está basado en el uso de colores, de tal forma que cada instrucción es representada por un píxel de determinado color, que forma parte de una imagen/programa. Su repertorio de instrucciones es práticamente idéntico al de Brainfuck, por lo que podría considerarse un dialecto o variación de éste.

Hello World:

Fuente:
Wikipedia

Comentarios

JorScorpion ha dicho que…
Interesante...

me pregunto si sus creadores los utilizaran o solo los hicieron por ocio.

O también alguien aparte de sus creadores los sabrán usar o se darán el tiempo para aprenderlos?

Bueno, supongo que si...

Pero parece que falto algo aquí, esta explicada la esencia de cada uno, pero... ¿tienen alguna página oficial donde pueda adquirir documentación de como usarlo?, o ¿existen compiladores para esos lenguajes?.

Luego, si para imprimir un texto es todo eso, no me imagino como es para capturar el texto del teclado.

Ah!, y aunque tenga un orangután dudo que sepa programar Ook.

no es como si fura un conocimiento nato de los orangutanes.
Unknown ha dicho que…
Lo de las paginas oficiales seria cuestión de investigarlo, como no es algo muy viable aprenderlos no creo que la gente tenga interés en buscar compiladores de Ook!
Además, primero tendrías que conseguirte un orangután que conozca de Ook! para después enseñar a tu otro orangután, lo que nos lleva al dilema del huevo y la gallina :P

Entradas populares de este blog

El Spam y por qué mandar cartas cadena es malo

El tren de los recuerdos: Remi

Generos del Anime