Interprete de Brainf*ck

¿Qué es Brainfuck?

Es un lenguaje de programación extremadamente “simple”.

Su gramática sería algo como:

S:=[ + | - | > | < | [ | ] | . | , ]*

es decir, una cadena de caracteres compuesta por los símbolos

+

-

<

>

[

]

Supuestamente cualquier otro carácter en el código se debe ignorar, lo cual quiere decir que todo lo demás son comentarios.

El objetivo fundamental de este lenguaje no fue otro que el de permitir crear el compilador mas pequeño del mundo (originariamente 240 bytes).

BF está basado en la máquina de Turing mejorada (en realidad la máquina de Turing original solo podía escribir 0 ó 1 en la cinta) sin embargo BF tiene una limitación importantísima con respecto a las máquinas de Turing: tiene un tamaño de cinta finito (el límite, aunque no es un estandar, suele estar fijado en 30000 bytes). Dicha máquina de Turing sirve sobre todo para estudiar conceptos matemáticos relacionados con la teoría de la Computabilidad y la teoría de la Complejidad.

Según la tesis de Church-Turing no existe ninguna máquina conceptual capaz de resolver un algoritmo que no resuelva una máquina de Turing.

Normalmente los defensores de la IA fuerte mantienen que el cerebro humano (y según parece ser, el Universo) es reducible a una máquina de Turing.

¿Para que sirve BF?

Programar en este lenguaje en lugar de utilizar uno de más alto nivel (como puede ser por ejemplo el lenguaje ensamblador) sólo puede tener un motivo: llevar al extremo la práctica del onanismo mental y probar el nivel de frikismo.

A continuación: un interprete de Brainfuck que yo programé hace tiempo en forma de applet de java (me apetece un café)

15 Responses to “Interprete de Brainf*ck”

  1. Titiritero dice:

    Al fin mi ingrato me hace caso. Al fin podrá resolver el reto que puso lanxarxa hace siglos. El 28 de junio de 2006, yo, el gran titiritero reto a sus queridos lectores a que le resolvieran esto:

    ¿Que pone?
    ++++++++++[>++++++++++++++.—.+++++++..+++.
    >++++[>+++++++++++.————.[-]<<
    ++++++++.——–.+++.——.——–.[-]
    ++++++++++.[-]<

  2. Titiritero dice:

    Lo he copiado mal de mi blog, el programa anterior del programa.

    Ese interprete es ingrato me sale esto: hhoor,,zruog con mi programa. Está en idioma ingrato o es que el interprete tuyo no es muy bueno.

  3. Alfredo dice:

    Ummm… Por lo menos cosas raras estas haciendo, tienes bucles anidados y ademas dos de los corchetes izquierdos no los cierras despues. Mi interprete simplemente lo hice en una tarde y no tuve en cuenta todas las situaciones de error que pueden darse cuando el programador es un titiritero. Pero si quieres busco el codigo fuente lo libero como gnu y tu lo modificas para que acepte tus titiriteces

  4. Alfredo dice:

    Ademas, este post tiene su origen debido a : http://myhappynessinahole.blogspot.com/2008/03/cmo-se-escribe-tu-nombre-en-otros.html

    Recuerda que ese interprete data del 11 de Marzo de 2006 a las 07:58:00 PM CET que como recordaras fue publicado en mi cutre pagina web.

  5. Titiritero dice:

    Ah si que el interprete es tuyo. Pues ya que te gusta tanto el software libre, pues a que esperas. Liberalo porque ahora lo único que es, pues es como windows, software privativo y cerrado.

    Y otra cosa, Ya no me gusta tu interprete tiene un origen un poco energúmeno.

  6. Alfredo dice:

    Tengo que buscar el codigo fuente, a saber donde lo habré metido. Y si no pues se programa otra vez, ya ves tú.
    En cuanto al origen fue energúmeno pero por mi parte. Simplemente otro energúmeno me trajo viejos recuerdos y fomentó que me pusiera a rebuscar en el baúl.

  7. Pako dice:

    Y ya he editado la entrada para mostrar cómo se escribe pako en br*infuck ;)

  8. Alfredo dice:

    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.

  9. Alfredo dice:

    (pako en Ook ) (es exactamente el mismo programa que en br*infuck)

  10. Pako dice:

    OMFG! Tú tienes demasiado tiempo libre, verdad?
    Pues si es así ya estás creando un intérprete de Ook xDD

    Besos

  11. Alfredo dice:

    Pues bueno, como de todas formas no encuentro el codigo fuente del applet tendré que volver a programarlo todo desde 0

  12. Titiritero dice:

    Si es por tu comentarista titiritero no vale la pena volverlo a hacer. Sobre mi programa ese que puse debería de dar el mensaje “Hola mundo” según un sitio de donde lo cogí.

    Dedica tus esfuerzos a cosas más interesantes.

  13. Alfredo dice:

    Ya me lo imaginaba.

  14. yvette dice:

    tengo un cd de música que tiene escondidos archivos en brainfck.Cómo puedo descodificarlo.
    Hay 7 canciones y en el icono de cada una hay un candado en la parte izquierda.
    Dentro de los archivos brainfuck habrán unas preguntas.
    Qué programa tengo que utilizar y cómo lo hago?

Leave a Reply


8 + 2 =