Esta é a etapa final, e o programa já interpreta seis comandos, faltando apenas mais dois.
sábado, 1 de agosto de 2009
Como implementar um interpretador de brainfuck - parte 5
Gostou? Então ajude a divulgar:
Como implementar um interpretador de brainfuck - parte 4
Até aqui, o programa já consegue interpretar dois dos oito comandos de brainfuck. Se o valor da célula selecionada for igual a 82, e for mandado para a tela, será exibido um “R”, pois 82 equivale a essa letra, de acordo com o ASCII.
Gostou? Então ajude a divulgar:
Como implementar um interpretador de brainfuck - parte 3
Até aqui, o programa já abre um arquivo e coloca seu conteúdo na memória. Só falta fazê-lo analisar e interpretar o arquivo.
Gostou? Então ajude a divulgar:
Como implementar um interpretador de brainfuck - parte 2
Depois de aberto o arquivo, deve-se extrair o seu conteúdo, usando funções como fgets(), fscanf() e fread(). Eu prefiro usar a função fread(), pois é a mais rápida das três e a única que pode extrair o conteúdo do arquivo inteiro de uma vez só, sem a necessidade de usar estruturas de repetição. A velocidade do processamento da função fread() pode não fazer diferença em arquivos pequenos, mas em arquivos grandes (~1 MB), as outras funções são tão lentas que podem levar horas, enquanto a fread() pode fazer o serviço na mesma velocidade, ou quase, que quando feita em arquivos pequenos.
Gostou? Então ajude a divulgar:
Como implementar um interpretador de brainfuck
Neste tutorial estarei abordando a implementação de um interpretador de brainfuck, tendo ênfase em abrir arquivos, interpretar argumentos da linha de comando e interpretar comandos de byte único de uma linguagem, usando a linguagem C/C++ (será compatível com ambas as linguagens). O código fonte foi testado no Linux e no Windows, e provavelmente também funcionará em outros sistemas.
Gostou? Então ajude a divulgar: