Beiträge getaggt mit Fakultät von 7

Introducing „brainfuck“


Ist das etwa obszön?

Und ob das szön ist! Nein, „brainfuck“ ist eine sogenannte esoterische Programmiersprache mit nur 8 Befehlen.

Sie ist Turing-vollständig, was nichts weniger bedeutet als dass man mit dieser Sprache und der entsprechenden „Maschine“, die sie ausführt, alles berechnen kann, was sich berechnen lässt. Genügend Zeit und Speicherplatz vorausgesetzt. Man sollte „genügend“ aber im Zusammenhang mit Turing-Vollständigkeit geistig immer mit „beliebig viel“ hinterlegen! Insbesondere Zeit; stellt sich doch später heraus, das Speicher für die meisten „alltäglichen“ Sachen nicht größer als 20-100 Zellen sein muss. Um aber z.B. die Fakultät von 7 (7! = 2*3*4*5*6*7 = 5040) zu berechnen, braucht meine eigene Implementierung (siehe unten) mehr als 160000 ausgeführte Instruktionen. Aber nur 9 Speicherzellen.

Warum „brainfuck“?

Die Sprache wurde explizit mit dem Ziel entworfen, den kleinst-möglichen Compiler zu ermöglichen („imperativ minimal“). Gerüchten zufolge besteht der kleinste auf einer x86-Maschine ausführbare Compiler aus mageren 191 Bytes. Das zweite Ziel war die bereits angesprochene Turing-Vollständigkeit.

Der Name „brainfuck“ hat sich dann erst ergeben, nachdem man versucht hat, mit dieser Sprache tatsächlich etwas zu berechnen. Ich kann das nachvollziehen!

brainfac(7)before

brainfuck (16-Bit, unsigned, 20 Speicherzellen) vor, …

brainfac(7)while

… wärend und …

brainfac(7)after

… nach der Berechnung der Fakultät von 7.

(bevor jemand fragt: die Screenshots sind von meiner im Selbstbau befindlichen „brainfuck IDE„)

Den Rest des Beitrags lesen »

, , , , , , , , , , , ,

Ein Kommentar