Brainfuck: Gesammelter Kram
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.
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.