Zum Inhalt springen

Benutzer:Kajk/Brainfuck

Aus Wikibooks

Hauptseite

[Bearbeiten]

Inhaltsverzeichnis

  • Einleitung
  • Grundlagen
    • Die Befehle
    • Ein Text ausgeben
    • Text einlesen
    • Bedingungen
    • Schleifen

Einleitung

[Bearbeiten]

Brainfuck, ab hier nur noch Bf, ist eine Programmiersprache, welche nur aus 8 unterschiedliche Instruktionen kennt und trotzdem Turing-Vollständig. Dies bedeutet, dass man alle Grundoperationen durchführen kann.

Die Basis aller Operationen ist ein (theoretisch) unedlich grossen Matrix an Bytes. Zum auf dieser Matrix zu operieren erhält man einen Pointer/Zeiger p. Nachfolgend die 8 Operationen, die alle vom Pointer p abhängig sind:

Instruktion in Bf Instruktion in C Beschreibung
> ++p; Der Pointer zeigt danach auf das nächste Feld in der Matrix.
< --p; Der Pointer zeigt danach auf das vorhergehende Feld in der Matrix.

Falls der Pointer bereits auf das Feld '0' zeigt, wird nichts gemacht.

+ ++*p; Der Wert des aktuellen Feldes wird um 1 erhöht.
- --*p; Der Wert des aktuellen Feldes wird um 1 vermindert.

Falls der Wert bereits '0' ist, wird nichts gemacht.

. putchar(*p); Das ASCII equivalent des Wertes des aktuellen Feldes wird auf die Konsole geschrieben
, *p = getchar(); Ein Zeichen wird von der Konsole eingelesen und das ASCII equivalent wird in das aktuelle Feld gespeichert
[ while (*p) { Eine Schleife wird begonnen, wobei diese solange wiederholt wird, bis der aktuelle Wert 0 ist
] } Das Ende der Schleifen-Blocks

Grundlagen

[Bearbeiten]

In der folgenden Tabelle sind alle 8 Instruktionen in die Programmiersprache C übersetzt worden.

Ein Text ausgeben

[Bearbeiten]