Brainfuck: Unterschied zwischen den Versionen

Aus Stupidedia, der sinnfreien Enzyklopädie!
Wechseln zu: Navigation, Suche
(<Die Seite wurde GELEERT!>)
Zeile 1: Zeile 1:
{{WP|Brainfuck}}Bei '''Brainfuck''' handelt es sich um eine simple [[Programmiersprache]], welche 1991 zur Programmierung von [[Datenbank|Tiefseedatenbanken]] geschaffen wurde und die Lesbarkeit von [[Spaghetti|Perl]] mit der Zuverlässigkeit von [[Fehler|Visual Basic]] und der Übersichtlichkeit von [[GOTO|Assembler]] verbindet.
 
Ihre einfache und machtvolle [[Grammatik|Syntax]] erleichtert es [[Enschen|Windows-Nutzern]], ihre Kreativität zu demonstrieren, indem diese vollständig auf den Umgang damit verzichten.
 
  
== Geschichte ==
 
Der Schöpfer der Sprache, Nairb Eht, der sich später als [[Labor]]affe outete und in etwa 30 Jahren die Weltherrschaft an sich reißen wird, ist laut einer Umfrage des statistischen Bundesamtes irgendwann in den [[50er Jahre|1950er Jahren]] - mutmaßlich an seiner eigenen Erfindung - umgekommen. Für die jüngere Geschichte siehe auch [[Brainfuck#Tarnung|Tarnung]].
 
 
== Sprachprinzip ==
 
Ähnlich einer [[Turing-Maschine]] gibt es ein Speicherband [[Gummi | nahezu unbegrenzter Länge]] und einen [[Zeiger]], der auf diesem hin- und herfährt. Die Aktionen dieses Zeigers sind jedoch nur von äußersten Insidern vorhersehbar, und dass auch bloß dann wenn der Quellcode bereits mehrmalig interpretiert und ausgeführt wurde.
 
Diese Charakteristik eines so genannten ''Wilden Zeigers'' wurde aufgrund ihrer vielfältigen Verwendbarkeit auch in den Programmiersprachen [[C_(Programmiersprache)|C]] und [[C++]] aufgenommen.
 
 
== Zeichen- und Befehlssatz ==
 
 
Dies sind die 5 grundlegenden Befehls-Zeichen der Sprache:
 
{| border="1" cellpadding="5" cellspacing="0"
 
! style="background: #88F" | Zeichen
 
! style="background: #88F" | Wirkung
 
|-
 
| align="center" | < || Verschiebt den Zeiger nach links
 
|-
 
| align="center" | > || Verschiebt den Zeiger nach oben
 
|-
 
| align="center" | + || Erhöht die Länge des Quellcodes
 
|-
 
| align="center" | - || Vermindert die Lesbarkeit des Quellcodes
 
|-
 
| align="center" | [ || Leitet eine Endlos-[[Schleife]] ein
 
|-
 
| align="center" | ] || Zeigt das Ende einer Endlos-Schleife an
 
|-
 
| align="center" | , || [[Come From | 'COME FROM']]-Befehl (siehe auch [[Komma]])
 
|-
 
| align="center" | . || Markiert das Ende des Brainfuck-Zeichensatzes
 
|}
 
 
Folgende 'Wörter' gibt es in Brainfuck nicht:
 
{| border="1" cellpadding="5" cellspacing="0"
 
! style="background: #FC4" | Bedeutung<br />
 
! style="background: #FC4" | Zeichenfolge<br />
 
|-
 
|Variable Definieren || ___ <=> \0\0\0iiiiiii\0\0\0 <font color=green>''//3fache Nullterminierung des Integers ist Pflicht!''</font>
 
|-
 
|Logisches UND || :>
 
|-
 
|Logisches ODER || :P
 
|-
 
|Logisches NICHT UND || ;<
 
|-
 
|Logisches NICHT ODER || :q
 
|-
 
|Logisches NIEMALS || ---
 
|-
 
|Logisches MANCHMAL || ++--~~
 
|-
 
|While-Schleife || (++--~~var < iiiiiii) )0------------> { ________+++++ } <font color=green>''//der logische MANCHMAL operator in der while ist ebenfalls Pflicht''</font>
 
|-
 
|If-Verzweiflung || !!! var > iiiiii-ööhm-iiiii) 7H3n------------> { ______ ;) __ }
 
|}
 
Außerdem gibt es in Brainfuck keine vom Benutzer definierten [[Funktion]]en/Prozeduren, [[Klasse]]n, oder sonstige störende Phänomene, und die Verwendung eines [[EOF]] ist strengstens untersagt.
 
 
== Syntax ==
 
 
Die Befehle werden häufig schlicht aneinander gereiht. Jedoch darf hinter jedem Befehl zur besseren Wartbarkeit optional ein doppeltes [[Semikolon]] eingefügt werden. Populär sind darüber hinaus auch sporadische "BEGIN...END"-Blöcke oder geschweifte Klammern, die eingesetzt werden um dem Brainfuck-Interpreter ein spannendes Leseabenteuer zu gewährleisten.<br />
 
Einzeilige Kommentare werden mit zwei [[Schrägstrich|'/']] angekündigt. Sie werden aber von einigen Brainfuck-Programmierern geächtet weil aus ihnen (angeblich) schwer kalkulierbares Verhalten resultiert.
 
 
== Beispiele ==
 
=== Jedes Zeichen einmal ausgeben ===
 
Dies ist der Beweis, Brainfuck ist die einfachste Programmiersprache:
 
+[.+]
 
 
=== Ein einfaches Beispiel: Ausgabe der Zahlen 1 bis 7 ===
 
<font color=green>''// >+++++++ Brainfuck Beispielprogramm "von 1 bis 7" [ :-) <3 :+) :> :> ) +++++++<''</font><br />
 
Gib die Zahl Eins aus!    <font color=green>''// (gibt 1 aus]''</font><br />
 
Gib die Zahl Zwei aus!    <font color=green>''// (gibt 2 aus)''</font><br />
 
Gib die Zahl Drei aus!    <font color=green>''// (gibt 3 aus)''</font><br />
 
Gib die Zahl Vier aus!    <font color=green>''// (gibt 4 aus)''</font><br />
 
Gib die Zahl Fünf aus!    <font color=green>''// (gibt 5 aus)''</font><br />
 
Gib die Zahl Sechs aus!  <font color=green>''// (gibt 6 aus)''</font><br />
 
Gib die Zahl Sieben aus!  <font color=green>''// (gibt 7 aus)''</font><br />
 
<font color=green>''// <3 [ :->> Das war dann auch schon das Programm. + Kommentare mit Smilies !!! <<o: ]''</font>
 
=== Für die Fortgeschrittenen: <s>Brainfuck in </s> Firefox in Brainfuck ===
 
>++++++++[<++++++++ >-]<++.>++++++[<+++++++ >-]<++++++.>++++[<---- >-]<-.>++[<+++ >-]<++.+++++.>++[<--- >-]<--.>+++[<++++ >-]<+++.>++++[<---- >-]<--.>++[<+++ >-]<++.>++++++++[<--------- >-]<---.>++++++++[<+++++++++ >-]<+.>+++[<+++ >-]<+.+.>+++++++++[<--------- >-]<---.>++++++++[<++++++++ >-]<+++++.++++.+++++.>+++[<--- >-]<.>++++++++[<-------- >-]<-----.>+++++++++[<+++++++++ >-]<++.----.>++[<--- >-]<--.--.>+++[<+++ >-]<.>+++[<---- >-]<-.>+++[<++++ >-]<+..++++++.>+++[<---- >-]<---.>++++++++[<-------- >-]<-----.>++++++++[<++++++++ >-]<+++++.>+++[<++++ >-]<++.----.+++++.>+++[<---- >-]<---.>+++[<++++ >-]<+.>+++[<--- >-]<.>+++[<+++ >-]<+.>++++[<---- >-]<.+++++.---.>++++++++[<-------- >-]<-----.>++++++[<+++++++ >-]<++++++.>+++++[<++++++ >-]<++++.---.>++[<--- >-]<--.>+++[<+++ >-]<++.>++++[<---- >-]<-.>+++[<++++ >-]<..----.----.>+++[<++++ >-]<+.+.---.++.>++++[<---- >-]<-.++.+++++.---.>+++++++[<-------- >-]<-.>+++[<---- >-]<.>++++++++[<++++++++ >-]<+++++.>+++[<+++ >-]<.++++++.+++.>++[<--- >-]<--.+++.>+++[<---- >-]<.-.>+++[<+++ >-]<.>++++++++[<--------- >-]<------.>+++++++++[<+++++++++ >-]<+++++.>++[<--- >-]<-.--.>++++++++[<--------- >-]<-----.>+++++++[<+++++++ >-]<++.>++++[<++++ >-]<.+++++.>+++[<++++ >-]<+++.>++++[<---- >-]<--.++++.>++++[<++++ >-]<+.>++++[<----- >-]<-.>+++[<++++ >-]<+.>+++++++++[<--------- >-]<-.>+++++++[<+++++++ >-]<++++.>+++++[<+++++ >-]<++++.>++++[<---- >-]<.-.>+++[<++++ >-]<+.>++++++++[<--------- >-]<------.>++++++[<+++++++ >-]<+++.>++++++[<++++++ >-]<++++.>++++[<---- >-]<.>++[<+++ >-]<+..>++[<--- >-]<-.>+++[<++++ >-]<+.>+++++++++[<--------- >-]<-.>+++++++++[<+++++++++ >-]<++++.>++[<--- >-]<--.>++++++++[<--------- >-]<-----.>++++[<++++ >-]<+.>++[<+++ >-]<++..------.-----.>+++[<---- >-]<--.>++++++[<++++++ >-]<.>++++++[<++++++ >-]<+.----.>++++++++[<-------- >-]<-----.>+++++++[<+++++++ >-]<++.>+++++[<+++++ >-]<++++.++.>++++[<---- >-]<-.++.+++++.---.>++++++++[<-------- >-]<-----.>+++++++++[<+++++++++ >-]<++++++.>+++[<---- >-]<--.>+++[<+++ >-]<.>+++[<---- >-]<--.>++++++++[<-------- >-]<----.>++++++++[<+++++++++ >-]<+++++.>+++[<---- >-]<.>+++[<++++ >-]<+.>+++[<--- >-]<--.+++++.+++++.>+++[<---- >-]<.>+++[<+++ >-]<++.>++++++++[<--------- >-]<----.>++++++++[<++++++++ >-]<+.>++++[<+++++ >-]<.>++++[<---- >-]<--.+++++.>++++++++[<--------- >-]<.>+++++[<++++++ >-]<++++.>++++++[<+++++++ >-]<++++++.>++++[<---- >-]<-.>++[<+++ >-]<++.+++++.>++[<--- >-]<--.>+++++++[<-------- >-]<----.>+++++++[<++++++++ >-]<+.>++[<+++ >-]<++.>+++++++[<-------- >-]<-------.>+++[<---- >-]<.>+++++[<++++++ >-]<++++.>++++++[<+++++++ >-]<++++++.>++++[<---- >-]<-.>++[<+++ >-]<++.+++++.>++[<--- >-]<--.>+++++++[<-------- >-]<----...>+++[<--- >-]<-.>++++++++[<+++++++++ >-]<+++++++.>+++[<--- >-]<--.+.>+++[<++++ >-]<+.>+++++++++[<--------- >-]<-.>+++++[<++++++ >-]<++++.++++.>++++++[<------ >-]<--.>++++++++[<++++++++ >-]<+++++++.--.>+++[<+++ >-]<.>+++[<---- >-]<-.>+++[<++++ >-]<+..++++++.>++++++++[<-------- >-]<------.>
 
 
== Fakten ==
 
*[[Vista]] wurde in Brainfuck programmiert (Das ist eine Leistung!!!)
 
*übermäßiges B.-Programmieren kann [[Nasenlähmung]] auslösen.
 
 
== Sprachvarianten ==
 
Brainfuck ist die Erweiterung folgender Vorgängersprachen:
 
 
Brain - Die Basicvariante<br />
 
Brain++ - Die Inkrementierte Variante<br />
 
Brain# - Die "noch son Zeichen" Variante<br />
 
Brainfire - Die krematierte Variante<br />
 
Masterbrain - Für Spieler<br />
 
Getthebrainoutofhere - Für Singleusersysteme<br />
 
Braindead - Für das Leben danach<br />
 
 
== Tarnung ==
 
Wer sich heute fragt was aus dieser Sprache geworden ist, ist keiner von den Wenigen, die sich das aus reiner Neugier fragen.
 
Für die die das doch interessiert die mögen sich jetzt festhalten, denn das ist wirklich unglaublich.
 
 
Dies ist eine sehr lange Geschichte die bis heute noch bekannt ist.
 
 
Eines Tages erfuhr John T. Chambers von Brainfuck. Dieser hatte vor [[CISCO Systems]] zu gründen um Leuten die sich im späteren Beruf mit der Vernetzung von Computern auseinandersetzen möchten das Gehirn aus dem Menschen durch das "aufploppen" der Schädeldecke hinauszuficken. Gefolgt von der Seele und ganz zu schweigen die Lust am Leben. So beschloss er sich Brainfuck als Basis zum konfigurieren der Maschinen die für die Erreichung dieser Ziele zuständig sind zu konfigurieren.
 
 
Eines sollte man Ihnen lassen.
 
Nämlich was die Verdeutlichung angeht. Denn schließlich waren sie ja auch sehr Zielstrebig!
 
Schlussendlich gaben sie dem neuen Brainfuck den Namen IOS.
 
Und so wurde daraus das Betriebssystem zum Konfigurieren ihrer [[Router]]s und [[Switch]]es.
 
 
== Weblinks ==
 
http://de.wikipedia.org/wiki/Brainfuck - Brainfuck-Seite des [[Wikipedia | Stupidedia-Klons]]<br />
 
http://esolangs.org/wiki/Brainfuck - Brainfuck-Seite einer weiteren Stupidedia-Kopie<br />
 
http://nagelkopf.de/php/php-brainfuck-klasse/  - Brainfuck-PHP Klasse für self -Brainfucks<br />
 
 
 
{{Programmiersprachen}}
 
 
[[Kategorie:Computer]]
 
[[Kategorie:Sprache]]
 
[[Kategorie:Sprachwissenschaften]]
 
[[Kategorie:Software]]
 

Version vom 1. Juni 2014, 15:25 Uhr


Linktipps: Faditiva und 3DPresso