Brainfuck – die wohl kleinste Programmiersprache der Welt (Teil 1)

Nein, Brainfuck ist keine Nerdkrankheit, sondern eine Programmiersprache. Wer mehr wissen will, muss einfach nur weiterlesen ;)

Was ist Brainfuck

Brainfuck ist, wie schon oben erwähnt, eine Programmiersprache. Sie wurde 1993 von Urban Müller entwickelt. Von der Klassifizierung gehört sie zu den esoterischen Programmiersprachen. Sie ist imperativ, Turing-vollständig und sehr klein. Vom Prinzip kann man mit ihr alles machen was man auch mit C oder Java kann. Allerdings reduziert sich die Ein- und Ausgabe auf die Textkonsole.
Wie ist diese Tutorialreihe aufgebaut

Wie schon an der Überschrift erkennbar, wird es mehrere Teile geben, in denen ich die Sprachfeatures, ein paar Beispielprogramme und einen rudimentären Compiler (oder VM, je nach Zeit die wir haben) vorstellen werde:

Teil 1: Hello World (naiv) und Vorstellung von +,, und .

Teil 2: Hello World (besser) und Vorstellung von [,], > und <

… (folgt später)

Aber nun zu unserem ersten Brainfuck Programm.

Hello World in Brainfuck

Brainfuck ist vom Prinzip eine etwas „bessere“ Turingmaschine. Es gibt insgesamt nur 8 Befehle, die wie bei einer Turingmaschine auf einen „theoretisch“ unendlichen Band Daten ändern können.

Der erste Befehl ist +. Er erhöht den Wert in der aktuellen Zelle. Komplementär dazu ist – er erniedrigt den Wert in der aktuellen Zelle. Dann gibt es noch dieser gibt den Wert der aktuellen Zelle auf der Standartausgabe aus.

Zur Übersicht nochmal eine Tabelle:

 

Befehl Erklärung
+ Erhöht den Wert in der aktuellen Zelle
Erniedrigt den Wert in der aktuellen Zelle
. Gibt den Wert in der aktuellen Zelle aus (ist in der Zelle die Zahl 65, gibt er ‚A‘ auf der Konsole aus)

Sehr einfaches Hello World in Brainfuck:

 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------.

Wir arbeiten aktuell nur auf einer Zelle und erhöhen deren Wert solange mit bis in ASCII „H“ als Wert in der Zelle ist. Diesen geben wir aus. Das wiederholen wir mit allen Zeichen.

Wie man sehen kann ist Brainfuck „eigentlich“ ganz einfach. Wie wir dieses Programm etwas eleganter schreiben könnt, zeige ich euch nächstes Mal. Außerdem wird dann auch endlich mal „gerechnet“…

Viele Grüße

bitwave