CHAOS COMPUTER CLUB COLOGNE
 
     



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 nervtötend zu nutzende Sprache, schätzungsweise aus dem Jahre 1993. Autor dieser Sprache ist der Schweizer Urban Müller, von dem auch der original Brainfuck-Interpreter und ein mittlerweile verschollener Compiler für den Amiga stammt.

Die Sprache kennt zwei mathematische Funktionen (+ und -), Funktionen zum Einlesen und Ausgeben von Zeichen (, und .), die Möglichkeit, eine Speicherstelle vorwärts bzw. rückwärts zu gehen (> und <), sowie ein spezielles Schleifenkonstrukt ([]). Aus diesen Funktionen besteht der gesamte Sprachumfang von Brainfuck.

Nachdem wir im CCC Köln diese Sprache mit einiger Begeisterung Ende 1999 wiederentdeckt hatten, haben wir uns an die Implementation einiger Tools gemacht (Compiler, Assembler) und träumen von der Realisierung einer Brainfuck-Maschine, die diese Sprache direkt in Hardware implementiert. Im Moment ist die Brainfuck-Hardware noch ein Traum (auch wenn Überlegungen zum Design und ziemlich komplette Schaltpläne existieren), aber das muss nicht so bleiben: Wer Interesse am Bau dieser Maschine hat, möge sich bitte auf der Mailingliste melden. Als Warnung vorweg: Hierbei handelt es sich nur entfernt um ein "sinnvolles" Projekt -- Brainfuck ist nicht für 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. Enthält 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) Enthält als Beispielprogramm eine beeindruckende McDonald's-Simulation.
bfi.c: Der original Brainfuck-Interpreter
bfi.c.patch: Kleiner, aber notweniger Patch: Mehr Speicher für Brainfuck-Pogramme und kein segfault unter LinuxPPC mehr
brainfuck-samples.tar.gz: Brainfuck-Programme im Sourcecode zum Lernen: "Hello World", Primzahlen und mehr.

Theorie

Die Idee hinter Brainfuck ist die der sogenannten Turing-Maschine. Es ist theoretisch beweisbar, dass sich alle berechenbaren Probleme mit einer Turing-Maschine lösen 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 Verschlüsselungsmaschine Enigma geknackt hatte, wurde ihm als einer der Väter des Computers später das Leben zur Hölle gemacht, da er schwul war). Die folgenden Links bieten einen kurzen Überblick über die Idee der Turing-Maschine.

Alan Turing Homepage
oder auch gleich direkt: Näheres zur Turing-Maschine
Was Yahoo zum Thema Turing-Maschinen weiß

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.


        (K) CHAOS COMPUTER CLUB COLOGNE. All Rights reversed.
[ INCOMING LINKS | PROJEKTE | HOME ]