domingo, 26 de octubre de 2008

Computadora Brainfuck

Brainfuck es un lenguaje de programación esotérico, usa 8 comandos (sí, 8) y es facil de aprender. Lo que es dificil es programar cosas grosas.

El lenguaje se basa en un modelo de ejecución simple que consiste, además del programa, de un array de 30.000 bytes inicializados a cero, un puntero sobre ese array (que al comienzo de la ejecución apunta al primer elemento del mismo) y dos flujos de bytes: para la entrada y la salida.

Hay sólo ocho instrucciones, y todas son de un carácter.

Carácter Significado
> Incrementa el puntero.
< Decrementa el puntero.
+ Incrementa el byte apuntado.
- Decrementa el byte apuntado.
. Introduce el byte apuntado en la corriente de salida.
, Toma como valor del byte actualmente apuntado el provisto por la corriente de entrada.
[ Avanza a la instrucción inmediatamente posterior al ] correspondiente si el byte actualmente apuntado es nulo.
] Retrocede a la instrucción inmediatamente posterior al [ correspondiente si el byte actualmente apuntado no es nulo.

Es una máquina sencilla, estoy haciendo una implementación con puertas lógicas, chips de ram y otras cosas.

Como regalo, les dejo un programa que escribe 'electro-flashproy'. Pueden probarlo en el parser online: Parser online de Brainfuck

+++++[>++++++++++++++++++++<-]>+.+++++++.-------.--.+++++++++++++++++.--.---.
>>>+++++[>+++++++++<-]>.<<<<---------.++++++.-----------.++++++++++++++++++.-----------.
++++++++.++.---.++++++++++.

No hay comentarios: