GBrainFuck

Bem-vindo à página do Projeto GBrainFuck.

English

A linguagem BrainFuck

BrainFuck é uma linguagem de programação muito simples e concisa. Ela é tão simples que só tem 8 palavras reservadas:

A palavra reservada "+" aumenta o valor contido na célula atual em um; a palavra reservada "-" diminui o valor contido na célula atual em um; a palavra reservada ">" faz a "unidade controladora" avançar para a próxima célula, e a palavra reservada "<" faz a "unidade controladora" retroceder para a célula anterior; a palavra reservada "." mostra na saída-padrão o conteúdo da célula atual sob a forma de um caractere ASCII (por exemplo, se a célula contém o valor 33 o interpretador imprimirá o caractere "!"); a palavra reservada "," lê da entrada padrão um caractere e guarda seu valor na célula atual, sobrescrevendo o valor anteriormente existente lá.

Laços são realizados usando as palavras reservadas "[" e "]". "[" verifica se o valor da célula atual é 0. Se for, o controlador vai para a primeira instrução após o "]" no mesmo nível de aninhamento; do contrário, o controlador segue para a próxima instrução. Todos os outros caracteres encontrados no programa-fonte são considerados comentários, e são ignorados.

O interpretador GBrainFuck

O interpretador GBrainFuck (gbf) é um interpretador para essa linguagem. Ele é mais eficiente no uso da memória para programas grandes do que no uso do processador, e há grande espaço para otimização (especialmente no código que lida com "[" e "]").

O interpretador é muito parecido com uma máquina de Turing: ele tem uma "fita" infinita, dividida em células que inicialmente contêm o valor 0, e que pode avançar e retroceder. Além disso, o interpretador contém uma unidade controladora que lê a fita, escreve nela e a move.

Junto com o interpretador, coloquei vários programas-exemplos BrainFuck, entre os quais um interpretador BrainFuck escrito em BrainFuck. Espero que você goste.

Os arquivos estão no SourceForge somente em código-fonte.

Sobre o autor

José de Paula é um estudante de Ciência da Computação brasileiro, ainda traçando seu caminho no mundo da programação, mas já um partidário ferrenho do GNU, FreeBSD e Vim.

Você pode enviar-lhe um e-mail para reportar bugs, pedir funcionalidades, fazer sugestões, enviar patches ou flames. Obrigado.

Links

Daniel B. Cristofani, um grande programador Brainfuck, autor do interpretador BrainFuck escrito em BrainFuck. Vários programas brilhantes aqui.

Mr. Rock's Brainfuck Pages, contém um bom tutorial de BrainFuck.

Brian Raiter's Brainfuck Programming Language, dicas para implementadores da linguagem Brainfuck.

SourceForge.net Logo    Valid XHTML 1.0! Valid CSS!

The Esoteric Programming Languages Ring
<<Previous | Ring Hub | Next>>