summaryrefslogtreecommitdiffhomepage
path: root/de-de/brainfuck-de.html.markdown
diff options
context:
space:
mode:
authorSuzane Sant Ana <tetestonaldo@gmail.com>2017-12-31 14:27:06 -0200
committerGitHub <noreply@github.com>2017-12-31 14:27:06 -0200
commit42f9329bb3a028d374d6397991ac48b44064741e (patch)
tree1e75e2b3e122aeb863e3ffa037f6f64c4027fbf8 /de-de/brainfuck-de.html.markdown
parente6b77595f2669d66ac7be43c6e6083cbff80a9a7 (diff)
parent70a36c9bd970b928adde06afb2bd69f6ba8e5d5c (diff)
Merge pull request #1 from adambard/master
update
Diffstat (limited to 'de-de/brainfuck-de.html.markdown')
-rw-r--r--de-de/brainfuck-de.html.markdown89
1 files changed, 89 insertions, 0 deletions
diff --git a/de-de/brainfuck-de.html.markdown b/de-de/brainfuck-de.html.markdown
new file mode 100644
index 00000000..dd62dd67
--- /dev/null
+++ b/de-de/brainfuck-de.html.markdown
@@ -0,0 +1,89 @@
+---
+language: brainfuck
+contributors:
+ - ["Prajit Ramachandran", "http://prajitr.github.io/"]
+ - ["Mathias Bynens", "http://mathiasbynens.be/"]
+translators:
+ - ["urfuchs", "https://github.com/urfuchs"]
+filename: brainfuck-de
+lang: de-de
+
+---
+
+Brainfuck ist eine extrem minimalistische Turing-vollständige Programmiersprache
+mit lediglich 8 Befehlen.
+
+Mit dem [brainfuck-visualizer](http://fatiherikli.github.io/brainfuck-visualizer/) kann
+Brainfuck im Browser ausprobiert werden.
+
+```
+Alle Zeichen außer "><+-.,[]" (ohne die Klammern) werden ignoriert.
+
+Brainfuck besteht aus einem Array mit unendlich vielen Elementen, die alle mit Null initalisiert
+sind und einem Datenzeiger auf das aktuelle Element.
+
+Es gibt acht Befehle:
++ : Erhöht den Wert an der aktuellen Stelle um Eins.
+- : Verringert den Wert an der aktuellen Stelle um Eins.
+> : Bewegt den Zeiger um eine Stelle weiter.
+< : Bewegt den Zeiger um eine Stelle zurück.
+. : Gibt den Wert der aktuellen Zelle als ASCII Wert aus (z.B. 65 = 'A').
+, : Liest ein einzelnes Zeichen von der Standardeingabe und speichert dessen ASCII Wert in der aktuellen Zelle.
+[ : Wenn der Wert des aktuellen Elements Null ist, bewege des Zeiger hinter den
+ zugehörigen ]-Befehl.
+ Ansonsten, bewege den Zeiger ein Element weiter.
+] : Wenn der Wert des aktuellen Elements Null ist, bewege des Zeiger um eine Stelle
+ weiter.
+ Ansonsten, bewege den Zeiger hinter den zugehörigen [-Befehl.
+
+[ und ] bilden eine while-Schleife. Offensichtlich müssen sie paarweise vorkommen.
+
+Schauen wir uns einige grundlegende Programme an.
+
+++++++ [ > ++++++++++ < - ] > +++++ .
+
+Dieses Programm gibt den Buchstaben 'A' aus. Zunächst erhöht es den Wert der 1. Zelle auf 6.
+Diese erste Zelle wird für die Schleife verwendet. Danach beginnt das Programm
+die Schleife ([) und geht vor zu Zelle #2. Es erhöht den Zellwert inkrementell 10 Mal, geht dann zurück
+zu Zelle #1, und verringert Zelle #1. Diese Schleife wird 6 Mal durchlaufen (nach 6
+Durchläufen ist der Wert der Zelle #1 auf 0 reduziert, dadurch wird die Schleife abgebrochen
+und das Programm hinter dem korrespondierenden ] fortgesetzt).
+
+An dieser Stelle befinden wir uns an Zelle #1, die jetzt den Wert 0 hat, während Zelle #2
+den Wert 60 hat. Wir gehen vor zu Zelle #2, inkrementieren 5 Mal, bis zum Wert 65,
+und geben dann den Wert der Zelle #2 aus. 65 ist ein 'A' im ASCII Zeichensatz,
+daher wird 'A' am Terminal ausgegeben..
+
+
+, [ > + < - ] > .
+
+Dieses Programm liest ein Zeichen von der Benutzereingabe und schreibt dessen Wert
+in Zelle #1. Danach beginnt eine Schleife. Rücke vor auf Zelle #2, erhöhe den Wert der Zelle #2,
+gehe zurück auf Zelle #1, verringere den Wert der Zelle #1. Dies geht solange bis
+Zelle #1 den Wert 0 und Zelle #2 den alten Wert aus #1 hat. Da wir am Ende der Schleife
+bie Zelle #1 sind, gehe vor zu Zelle #2 und gibt denb Wert als ASCII Zeichen aus.
+
+Beachte biite, dass die Leerzeichen nur aus Gründen der Lesbarkeit geschrieben werden.
+Man könnte genauso schreiben:
+
+,[>+<-]>.
+
+Versuche herauszufinden, was dieses Programm macht:
+
+,>,< [ > [ >+ >+ << -] >> [- << + >>] <<< -] >>
+
+Dieses Programm nimmt zwei Zahlen als Eingabe und multipliziert sie.
+
+Im Wesentlichen liest es zunächst zwei Werte ein. Dann beginnt die äußere Schleife
+mit Zelle #1 als Zähler. Danach geht das Programm zu Zelle #2 vor und startet die innere Schleife
+mit Zelle #2 als Zähler. Diese zählt Zelle #3 hoch. Es gibt jedoch ein Problem:
+Am Ende der inneren Schleife hat Zelle #2 den Wert Null. Daher würde die innere
+Schleife beim nächsten Durchgang nicht mehr funktionieren. Daher wird auch Zelle #4
+erhöht und anschließend in Zelle #2 zurückkopiert.
+Am Ende steht in Zelle #3 das Ergebnis.
+```
+
+Das ist Brainfuck. Nicht so schwierig, oder? Zum Spaß kannst du dein eigenes Brainfuck
+Programm schreiben oder du schreibst einen Brainfuck Interpreter in einer anderen
+Programmiersprache. Der Interpreter lässt sich ziemlich einfach implementieren.
+Falls du Masochist bist, kannst du auch versuchen, einen Brainfuck Interpreter in Brainfuck zu implementieren.