Brainfuck
Aus ProgrammingWiki
Brainfuck ist eine ganz einfache Programmiersprache (von Urban Müller, Schweiz, 1993). Müllers Ziel war es, eine einfache Turing-Vollständige Sprache zu entwerfen, welche mit einem möglichst kleinen Compiler übersetzt werden kann. Ein Brainfuck-Programm ähnelt dabei stark der formalen Definition einer Turingmaschine.
Brainfuck besitzt acht Befehle, jeweils bestehend aus einem einzigen Zeichen:
Zeichen | C-Äquivalent | Semantik |
---|---|---|
> | ++ptr; | inkrementiert den Zeiger |
< | --ptr; | dekrementiert den Zeiger |
+ | ++*ptr; | inkrementiert den aktuellen Zellenwert |
- | --*ptr; | dekrementiert den aktuellen Zellenwert |
. | putchar(*ptr); | Gibt den aktuellen Zellenwert als ASCII-Zeichen auf der Standardausgabe aus |
, | *ptr = getchar(); | Liest ein Zeichen von der Standardeingabe und speichert dessen ASCII-Wert in der aktuellen Zelle |
[ | while (*ptr) { | Springt nach vorne, hinter den passenden ]-Befehl, wenn der aktuelle Zellenwert 0 ist |
] | } | Springt zurück, hinter den passenden [-Befehl, wenn der aktuelle Zellenwert nicht 0 ist |
Zur besseren Vorstellung wird hier der Speicher am Ende der Verarbeitung gezeigt.
Hier ein Hallo World! Programm in Brainfuck:
Zur Hilfestellung die ASCII-Tabelle:
|
|
|
|
Viele Ideen und Aufgaben rund um Brainfuck gibt es auch auf Swisseduc