R4ndom Frid4y #15: Lenguajes de programación esotéricos

Posted by Jose on viernes, 1 de octubre de 2010

Muy buenos días!! Hoy me gustaría hablar de algo que me pareció bastante curioso cuando lo conocí y que, quizás, os pueda molar: la programación esotérica.

El esoterismo en la programación nace como una vertiente que intenta crear lenguajes que vayan en contra de todos los principios de los demás. Es decir, mientras que lo que nosotros buscamos en un lenguaje de programación es un "relativa" sencillez a la hora de implementar nuestras aplicaciones, con esta vertiente de la programación nosotros tenemos lenguajes que se caracterizan por lo complicado de su utilización, sobretodo y entre otras cosas, por su limitado alfabeto.

Algunos ejemplos de este tipo de lenguajes que me he ido encontrando son:

  • C-ofuscado
No es que esto sea un lenguaje de programación esotérico, pero con esta variante se le añade cierto grado de exotismo, ya sea saltándonos la típica tabulación (que tan machacada tenemos) para crear arte ASCII o, la más común, utilizando como nombres de variables palabras parecidas a las reservadas (por ejemplo, la variable _float de tipo de datos float), con lo que se complica todo el código bastante.
  • Brainfuck
Este sí que es un lenguaje de los que se refiere el título del post. Concretamente, aquí únicamente tenemos 8 caracteres reservados (que son + - . , [ ] < >) y con ellos debemos realizar todo el programa. No existen tipos de datos como normalmente ocurre (no podemos declarar un vector de caracteres, una variable entera...) y cualquier carácter que no sea uno de los 8 comentados anteriormente, será tomado como comentario. Dicho así, ciertamente parece imposible de hacer nada con él (por algo lo de brainfuck), pero sí que se pueden realizar "cosillas".

Para los que tengan curiosidad, aquí os dejo un enlace con un tutorial sobre este lenguaje. Además, como os será necesario un intérprete, yo lo he probado en Ubuntu, y existe uno en los repositorios oficiales (basta con sudo apt-get install bf).

Por último, aquí os dejo mi primer "programilla". Nos es más que el "Hola, mundo", pero a mi manera...



  • Ook!
Ook! es otro lenguaje de tipo esotérico y minimalista. Es exactamente igual a Brainfuck sólo que, en lugar de tener los 8 símbolos reservados, tenemos tres palabras (Ook! Ook? y Ook.) que, mediante combinaciones de 2 de ellas, obtenemos la equivalencia y, por tanto, las sentencias reservadas del lenguaje. Las equivalencias se encuentran aquí.

La principal gracia de este lenguaje es que la "palabra" Ook viene de la saga Mundodisco de Terry Pratchett (más de uno por aquí seguro que sabe lo que es esto), concretamente del bibliotecario, el cual originariamente era un mago pero, tras una magia fallida, se convirtió en un orangután, pudiendo únicamente articular Ook como sonido.

Aquí os facilito en Ook! el mismo programa que estaba escrito en Brainfuck. Existe un intérprete online de este lenguaje en esta dirección. Sin embargo, también se puede descargar el código fuente del mismo para ejecutarlo desde nuestro ordenador (aunque para ello necesitaremos tener instalado un intérprete de Ruby).



  • Chef
Este lenguaje es bastante curioso y rompe bastante con los dos anteriores. La gracia del mismo es que nosotros realizamos un programa como si de una receta de cocina se tratara: especificando los ingredientes y la cantidad más después especificando la forma de realizar el plato concreto.

Es una pena, pero con este lenguaje no he conseguido hacer nada especial. Aquí os paso el enlace Wikipedia en el que se habla un poco más, mostrando también el ejemplo básico del "Hola Mundo". Además, también hay en ese enlace un link a una página con un intérprete de este lenguaje escrito en Perl.

Espero que os haya gustado un poco este rollo/post que rompe un poco con lo que solemos hablar. Os animo a buscar más lenguajes como estos, como pueden ser Taxi (en el que imitamos una "carrera" de lo más típico para escribir el programa) o Shakespeare, también conocido como SPL, en el que creamos un programa imitando el guión de una obra de teatro.

Bueno gente, nos leemos!!!

3 comentarios:

raul_id dijo...

interrsante! voy a hacer un programa de 1000 lineas con Okk! Okk. Okk! xDD

Ruro dijo...

La gente se aburre DEMASIADO

Anónimo dijo...

Ook! Ook! +++++[>+++++++++<-]>.<++++++++++[>++++<-]>-.

Pd: espero que os haya quedado claro...


Nicolas Cage.

Publicar un comentario