Język opiera się na prostym modelu maszyny, składającym się, oprócz programu, z tablicy bajtów (zazwyczaj 30000) zainicjowanych zerami oraz wskaźnika do tej tablicy, zainicjowanego tak, aby wskazywał na jej pierwszy element.

Instrukcje Brainfuck zawiera 8 następujących jednoznakowych instrukcji: ZnakZnaczenieOdpowiednik w C(Rozpoczęcie programu)inicjacja tablicy bajtów i wskaźnika do jej pierwszego elementuchar array[30000] = {0};char *p=array;>zwiększa wskaźnik o 1++p;<zmniejsza wskaźnik o 1--p;+zwiększa o 1 w bieżącej pozycji++(*p);-zmniejsza o 1 w bieżącej pozycji--(*p);.wyświetla znak w bieżącej pozycji (ASCII)putchar(*p);,pobiera znak i wstawia go w bieżącej pozycji (ASCII)*p=getchar();[skacze bezpośrednio za odpowiadający mu ], jeśli w bieżącej pozycji znajduje się 0while(*p){]skacze do odpowiadającego mu [}

Przy czym „bieżąca pozycja” oznacza element w tablicy wskazywany przez wskaźnik (w odpowiednikach w C, p oznacza wskaźnik).

Wszystkie inne znaki są ignorowane, co jest przydatne przy pisaniu komentarzy.

Przykłady Hello World!