A máquina de Turing é um conceito matemático teórico criado por Alan Turing que consiste em um modelo abstrato de uma máquina de estado capaz de executar tarefas genéricas.
A máquina de Turing é formada por quatro partes:
Podemos traçar um paralelo com o computador moderno: a fita são as instruções dadas ao processador, o registro de estados é a memória, o cabeçote é o processador e o alfabeto é o microprograma do processador.
Brainfuck é uma linguagem de programação esotérica criada em 1993 para o AmigaOS. Brainfuck é interessante porque implementa a máquina de Turing de forma restrita e minimalista.
Recomendo o artigo na Wikipédia, que explica muito bem.
Vamos usar Prolog pra implementar o interpretador.