Was ist Brainfuck?

Abstrakte Grafik zur Programmiersprache Brainfuck

Brainfuck ist eine der bekanntesten esoterischen Programmiersprachen. Sie kommt mit acht Befehlen aus und hat eine ganze Reihe weiterer Sprachen inspiriert. Finden Sie mehr rund ums Programmieren auf unserer Schwerpunktseite Programmiersprachen.

Geschichte

Urban Müller erfand Brainfuck 1993. Er wollte eine Sprache schaffen, für die er den kleinstmöglichen Compiler für das Betriebssystem AmigaOS 2.0 schreiben konnte, und kam auf 240 Byte. Vorbild war FALSE, dessen Compiler 1024 Byte groß war. Müller schrieb den Namen klein, heute wird er oft großgeschrieben. Inhaltlich ist Brainfuck eine kleine Abwandlung der Sprache P′′, die Corrado Böhm 1964 veröffentlichte; ob Müller sie kannte, ist nicht bekannt.

Funktionsweise

Brainfuck arbeitet auf einem Feld von Speicherzellen, die anfangs alle auf null stehen; in der Originalimplementierung waren es 30.000 Zellen. Ein Zeiger steht zu Beginn auf der ersten Zelle. Die acht Befehle:

  • > – Zeiger nach rechts bewegen
  • < – Zeiger nach links bewegen
  • + – aktuelle Zelle um eins erhöhen
  • – – aktuelle Zelle um eins verringern
  • . – Wert der Zelle als Zeichen ausgeben
  • , – ein Zeichen einlesen und in der Zelle speichern
  • [ – Schleifenbeginn: springt hinter die passende Klammer, wenn die Zelle null ist
  • ] – Schleifenende: springt zurück, wenn die Zelle nicht null ist

Alle anderen Zeichen gelten als Kommentar.

Hello World

Das Esolang-Wiki zeigt ein kommentiertes Programm, das „Hello World!“ ausgibt, und dieselbe Fassung in Kurzform:

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.

Einordnung

Ist das Speicherfeld unbegrenzt, ist Brainfuck turingvollständig. Zusammen mit der geringen Zahl an Befehlen macht das die Sprache zum Paradebeispiel einer „Turing-Tarpit“, einer Sprache, in der zwar alles berechenbar, aber kaum etwas bequem ist. Abwandlungen sind zum Beispiel Ook! und COW. Weitere Sprachen finden Sie in unserer Liste: Esoterische Programmiersprachen.

Quellen

Stand: 15.10.2026

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.