Conoce Brainfuck un curioso lenguaje de programación

 

Pocos imaginan la inmensa variedad de lenguajes de programación disponibles. Ciertamente una gran variedad como RPG, Forth, Fortran, Lisp, PL / I, Logo, C, Pascal, Perl, Python, TCL, Ada, Java, etc. Pero hoy no venimos a hablar de estos, hoy el protagonismo es tomado por Brainfuck pero antes. Lo primero que se aprende al aprender un nuevo lenguaje de programación es escribir "Hola mundo". Es uno de los temas más extendidos en el mundo y ya se ha convertido en una tradición que hace que más de uno se sienta incómodo si no aprende de esa manera. Por ejemplo, en C ++, uno de los lenguajes que usamos en el Curso Online de Programación de Videojuegos con C ++, hola mundo se escribiría así: cout << “Hola mundo << endl ;.

Pero, ¿por qué el nombre? ¿Qué tan difícil es este idioma? Bueno, en realidad no es tan difícil como pensamos. Solo hay 8 instrucciones posibles y solo tienen un carácter:> y <que aumentan y disminuyen el puntero, + y - que aumentan y disminuyen el byte señalado ,. que escribe el byte ,, que lee un byte, y [] que instrucciones hacia adelante o hacia atrás. Si lo miras, en la línea de hola mundo tienes 11 puntos: uno por cada letra y el espacio. Es más, si lo miras, hay dos puntos juntos: las dos l para hola. De hecho, es algo como esto:

++++++++++

[Bucle para iniciar los recuerdos (se repite 10 veces)

> +++++++> ++++++++++> +++++++++++> +++> + <<<<< -

70 100 110 30 10

]

> ++. imprime 'H' (72) 1

>> +. imprimir 'o' (111) 3

-. 'el (108) 3

<-. 'a' (97) 2

>> ++. espacial (32) 4

<+. 'm' (109) 3

++++++++. 'u' (117) 3

——-. 'n' (110) 3

<+++. 'd' (100) 2

> +. 'o' (111) 3

> +. '!' (33) 4

>. '\ n' (10) 5

Bueno, hay alguna diferencia con C ++. ¿Más ejemplos de código en Brainfuck? Un generador de números aleatorios: >>> ++ [<++++++++ [<[<++> -] >> [>>] + >> + [- [- >> + <<< [ <[<<] <+>]> [> [>>]]] <[>> [-]]> [> [- <<]> [<+ <]] + <<] <[> + < -] >> -] <. [-] >>] O el famoso algoritmo de burbuja, que nuestros alumnos del curso Unreal u Ogre conocen bien: >>, [>>,] << [[<<] >>>> [<< [> + < <+> -] >> [> + <<<< [->]> [<] >> -] <<< [[-] >> [> + <-] >> [<<< + >> > -]] >> [[<+> -] >>] <] << [>> + << -] <<] >>>> [. >>.

Artículo Anterior Artículo Siguiente
post ADS 1
post ADS 2