Brainfuck

Brainfuck ist eine extrem einfach zu lernende und extrem nervtoetend zu nutzende Sprache, schaetzungsweise aus dem Jahre 1993. Die Sprache kennt zwei mathematische Funktionen (+ und -), Funktionen zum Einlesen und Ausgeben von Zeichen (, und .), die Moeglichkeit, eine Speicherstelle vorwaerts bzw. rueckwaerts zu gehen (> und <), sowie ein spezielles Schleifenkonstrukt ([]). Aus diesen Funktionen besteht der gesamte Sprachumfang von Brainfuck.

Brainfuck: Gesammelter Kram

English version of this page

Willkommen in der wunderbaren Welt der Programmiersprache Brainfuck. Oder, um es in dieser wundervollen Programmiersprache selbst zu sagen:

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

Brainfuck ist eine extrem einfach zu lernende und extrem nervtoetend zu nutzende Sprache, schaetzungsweise aus dem Jahre 1993. Autor dieser Sprache ist der Schweizer Urban Mueller, von dem auch der original Brainfuck-Interpreter und ein mittlerweile verschollener Compiler fuer den Amiga stammt.

Die Sprache kennt zwei mathematische Funktionen (+ und -), Funktionen zum Einlesen und Ausgeben von Zeichen (, und .), die Moeglichkeit, eine Speicherstelle vorwaerts bzw. rueckwaerts zu gehen (> und <), sowie ein spezielles Schleifenkonstrukt ([]). Aus diesen Funktionen besteht der gesamte Sprachumfang von Brainfuck.

Nachdem wir im CCC Koeln diese Sprache mit einiger Begeisterung Ende 1999 wiederentdeckt hatten, haben wir uns an die Implementation einiger Tools gemacht (Compiler, Assembler) und taeumen von der Realisierung einer Brainfuck-Maschine, die diese Sprache direkt in Hardware implementiert. Im Moment ist die Brainfuck-Hardware noch ein Traum (auch wenn Ueberlegungen zum Design und ziemlich komplette Schaltplaene existieren), aber das muss nicht so bleiben: Wer Interesse am Bau dieser Maschine hat, moege sich bitte auf der Mailingliste i melden. Als Warnung vorweg: Hierbei handelt es sich nur entfernt um ein "sinnvolles" Projekt -- Brainfuck ist nicht fuer die Entwicklung richtiger Applikationen gedacht, sondern dient am besten der Befriedigung von perversen Hacker-Obsessionen im Bereich der Programmierung. Der Name der Sprache ist Programm.

Software

aidbf-0.1.tar.gz; Klaus Reimers Brainfuck Interpreter mit Debugger und allerlei netten Gadgets.

nbfc-0.1.tar.gz; "New Brainfuck Compiler": Ein optimierender Brainfuck-nach-C- und Brainfuck-nach-Java-Compiler.

nbfc.man.html: Die Manpage zu nbfc. Enthaelt u.a. eine Beschreibung der Sprache Brainfuck selbst

bfa-0.2.tar.gz: Klaus Reimers wundervoller Brainfuck-Assembler -- endlich komfortabel entwickeln unter Brainfuck! (alte Version: bfa-0.1.tar.gz) Enthaelt als Beispielprogramm eine beeindruckende McDonald's-Simulation.

bfi.c: Der original Brainfuck-Interpreter

bfi.c.patch: Kleiner, aber notweniger Patch: Mehr Speicher fuer Brainfuck-Pogramme und kein segfault unter LinuxPPC mehr

brainfuck-samples.tar.gz: Brainfuck-Programme im Sourcecode zum Lernen: "Hello World", Primzahlen und mehr.

Die Idee hinter Brainfuck ist die der sogenannten Turing-Maschine. Es ist theoretisch beweisbar, dass sich alle berechenbaren Probleme mit einer Turing-Maschine loesen lassen -- das heisst nicht, dass es besonders bequem oder einfach ist, vor allem im Vergleich zu Sprachen wie Lisp, Perl, C oder sogar Assembler. Die Turing-Maschine ist eine Erfindung des britischen Informatikers Alan Turing, der ein faszinierendes Leben gelebt hat (nachdem er im zweiten Weltkrieg die deutsche Verschluesselungsmaschine Enigma geknackt hatte, wurde ihm als einer der Vaeter des Computers spaeter das Leben zur Hoelle gemacht, da er schwul war). Die folgenden Links bieten einen kurzen Ueberblick ueber die Idee der Turing-Maschine.

Alan Turing Homepage

oder auch gleich direkt: Naeheres zur Turing-Maschine

Was Yahoo zum Thema Turing-Maschinen weiss

Mailingliste

Bei echtem Interesse bitten wir dringend darum, sich auf der Mailingliste friends-of-brainfuck" zu subscriben. Das geht auch und vor allem per Webinterface.

Links

Ryan Kusnery's Brainfuck compiler for MS-DOS, written in Brainfuck und ein Debugger sowie einige andere Tools

Frans Faases Brainfuckseiten mit einem online BF Interpreter in JavaScript, einem Tutorial und allerlei anderem.

99 bottles of beer in BF.

Programm, das seinen eigenen Quelltext ausgibt.

brainfuck.pl, ein Perl Brainfuck Interpreter von Marko Nippula.

Ein Mirror der wohl nicht mehr erreichbaren Brainfuck Homepage.

by johl, Nik 2002-09-07
Der Clubstatus wird geladen...
Der Club ist offen:
It's a secret to everybody.
Der Club ist geschlossen:
[...] even the word "hopeless" has "hope" in it. Plus, if you rearrange the letters it spells "peeslosh".
Der Clubstatus konnte nicht geladen werden.
content
Brainfuck: Gesammelter Kram
Software
Mailingliste
Links
Kontakt
Direkter Draht: mail@koeln.ccc.de
IRC: #cccc auf hackint (Web)
(Bei Anfragen bitte ERST das F.A.Q. lesen.)
Newsletter
Oder immer up-to-date mit unserem Newsletter.
Zur Newsletter-Anmeldung