Esoterische Programmiersprachen

Dr. Mathias Elsner

Remaining sane in insane times

Nomen est omen!

Der Name der Sprache ist Programm. Er beschreibt, was diese Sprache mit dem Gehirn der Entwickler macht, die so unvorsichtig sind, sich ihr auszusetzen. Um automatische Browser-Blockaden und Jugendschutz-Einstellungen zu umgehen, wird die Sprache manchmal auch als brainf*ck, brainf*** oder bf bezeichnet.


WTF is BF?

BF ist die strukturell einfachste Turing-vollständige Programmiersprache, die jemals implementiert wurde. Turing-vollständig bedeutet vereinfacht, dass man mit BF für jedes, wirklich jedes Programm einer beliebigen anderen Sprache eine funktionale Entsprechung in BF programmieren kann. Unter praktischen Gesichtspunkten wird man sich das nicht antun. Aber alles, was eine Maschine überhaupt berechnen kann, kann mittels BF berechnet werden. BF kann man sich am besten als Simulation einer Turing-Maschine vorstellen (siehe rechte Spalte).


Schreibe Deinen eigenen Code hierhin:

Beispiel-Code findet sich weiter unten auf dieser Seite.


    

; oder ms

◀ Input 0, -1, oder keine Änderung bei EOF

◀ Speicherband

Output ▼

    

Beispiel-Code:

(Klicke auf die Schaltfläche▼ um das Beispiel in den RUN-Bereich zu kopieren ▲)

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

Die einfachste Möglichkeit, Brainfuck auszuprobieren, ist mittels eines online Interpreters. Ich verwende auf dieser Seite das schöne Javascript von © Ian Osgood aus dem Jahre 2015.

Turing-Maschine

Eine implementierte BF Turing-Maschine besteht aus (1) einem [nur theoretisch unendlichen] Speicherband, das in diskrete "Felder", d.h. Zellen von je 1 Byte unterteilt ist; (2) einem "Schreib-/Lese-Kopf" und (3) einem "Programm", d.h. einer Folge von BF Befehlen. Die Befehle steuern die Bewegung des Kopfes und die Manipulation von Zellinhalten.


Turingmaschine

[Wikimedia 'Deniss' CCBYSA3.0]


Wer wirklich (wirklich!) tiefer einsteigen möchte, dem sei der bahnbrechende Aufsatz von Alan Turing aus dem Jahre 1936 empfohlen.


Brainfuck Befehle

Das ist der komplette Befehlssatz:

  • >
    (Bewegt den Pointer nach rechts)
  • <
    (Bewegt den Pointer nach links)
  • +
    (Inkrementiert aktuelle Zelle um 1)
  • -
    (Dekrementiert aktuelle Zelle um 1)
  • .
    (Gibt ASCII der aktuellen Zelle aus)
  • ,
    (User-Input ASCII in aktuelle Zelle)
  • [
    (Springt hinter die nächste ] wenn aktuelle Zelle = '0')
  • ]
    (Springt vor die letzte [ wenn aktuelle Zelle ungleich '0')

Alle anderen Zeichen werden als Kommentar interpretiert.

Impressum ©2020 mathias.elsner

Sorry, ich weiß, daß diese Seiten nicht gut auf mobilen Endgeräten skalieren...

Valid XHTML | CSS

Ich bin vom Aussterben bedroht