Com os devidos créditos à originalidade do criador desta linguagem, e ainda mais pela originalidade e não menor acertividade pelo nome dado, Brainfuck é um clássico do mundo exotérico da programação. É inegável que, numa não muito usual conversa de café acerca de linguagens exotéricas, Brainfuck é comummente a primeira referida. Com o seu princípio extremamente simples e sintaxe altamente minimalista, esta linguagem consegue fazer jus ao seu nome num piscar de olhos.
Não obstante a sua alta aplicabilidade no mundo… exotérico, talvez?, Brainfuck representa um exercício bastante apetecível para a implementação de um parser. Estando disponível na Internet o código-fonte Assembly do interpretador de Brainfuck, a sua implementação noutras linguagens recorrendo a diferentes paradigmas representa um carácter didáctico inegável.
Neste artigo – ao qual referências ao calão não irão faltar por força da circunstância – será feita a implementação de um interpretador de Brainfuck em Pascal, recorrendo unicamente ao paradigma procedural. Iniciemos então esta curiosa jornada!
Uma brevíssima introdução ao Brainfuck
Não tendo este artigo por objectivo ser um tutorial desta linguagem exotérica, será simplesmente sumariado o princípio que a rege e os operadores que a constituem.
Brainfuck é uma linguagem que tem por princípio a utilização de uma cadeia de células (cells) que contêm um valor numérico positivo, o qual representa um caracter ASCII. Com os seus únicos 8 operadores, o programador desloca o apontador ao longo das células e modifica os seus valores unidade a unidade. Esta linguagem suporta de igual forma operadores I/O com um funcionamento extremamente simples: só é feito output e input de um caracter de cada vez.
[...]