| Lista Articulos: [0-C] [C-I] [I-P] [P-Z] | Todas las categorías | Página aleatoria | Lo que enlaza aquí | ||||||
Brainfuck 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.
| Tabla de contenidos |
El lenguaje se basa en un modelo de ejecución simple que consiste, además del programa, de un array de (al menos 30.000) bytes inicializados a cero, un puntero sobre ese array (que al comienzo de la ejecución apunta al primer elemento del array) y dos "corrientes" 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. |
Las programas de Brainfuck se pueden traducir a C con estas substituciones, suponiendo que ptr sea del tipo unsigned
char*.
| Brainfuck | C |
|---|---|
> |
++ptr; |
< |
--ptr; |
+ |
++*ptr; |
- |
--*ptr; |
. |
putchar(*ptr); |
, |
*ptr = getchar(); |
[ |
while (*ptr) { |
] |
} |
Categorías: Lenguajes de programación | Wikipedia:Esbozo


