Benutzer:Kajk/Brainfuck
Erscheinungsbild
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.