Que nada! Macho mesmo programa em brainfuck!
Se nunca ouviu falar, aqui vai a definição da wikipedia:
"brainfuck (também conhecido como brainf*ck, ou BF) é uma linguagem de programação esotérica notada pelo seu extremo minimalismo, criada por Urban Müller, em 1993. Ela é uma linguagem Turing completa, desenhada para desafiar e confundir os programadores, e não é útil para uso prático. Pela sua simplicidade, o desenvolvimento de compiladores e interpretadores para essa linguagem é muito mais fácil do que para outras linguagens. O nome da linguagem é geralmente não-capitalizado, apesar de ser um substantivo próprio."
Para entender brainfuck, basta imaginar um array de 30 mil posições de signed chars, todos inicializados com zero. Algo como:
char array[30000];
memset( array, 0, sizeof( array ) );
memset( array, 0, sizeof( array ) );
Agora crie um ponteiro "p" para o início deste array:
char* p = array;
É isso que você tem para programar.
Os comandos de brainfuck são:
Comando | Utilidade |
+ | Incrementa o valor do dado na posição apontada (equivalente a fazer (*p)++ em C) |
- | Decrementa o valor do dado na posição apontada (equivalente a fazer (*p)-- em C) |
> | Aponta para o próximo byte (equivalente a fazer ++p em C ). Se estiver na última posição, volta para a primeira. |
< | Aponta para o byte anterior (equivalente a fazer --p em C ). Se estiver na primeira posição, salta para a última. |
. | Imprime na tela o valor do dado na posição apontada (equivalente a putchar( *p ) ) |
, | Lê um caractere do teclado e copia para a posição apontada (equivalente a *p = getchar() ) |
[ | Abre um loop, que será executado até a posição apontada ficar zero. (algo como um while( *p ){ |
] | Fecha o loop anterior. |
Qualquer outro comando é ignorado pelo compilador.
Um "Hello World" em brainfuck poderia ser escrito da seguinte forma:
++++++++++[>++++++++>+++++++++++>---------->+++>++++++++>+++++++
+++++>+++++++++++>++++++++++>+++++++++++>+++<<<<<<<<<<-]>-.>--.>
++++.>++.>---.>---.>.>.>+.>+++.
+++++>+++++++++++>++++++++++>+++++++++++>+++<<<<<<<<<<-]>-.>--.>
++++.>++.>---.>---.>.>.>+.>+++.
Agora você já pode colocar mais uma linguagem de programação no seu Currículo =]
Não viu utilidade?
Há pessoas que ainda defendem seu uso, dizendo que com esta linguagem é possível criar o menor compilador do mundo (um compilador de brainfuck tem menos de 200 bytes).
E você que pensava que sua torradeira jamais seria capaz de compilar um código...
minha torradeira agora so precisa de uma entrada usb
ResponderExcluir