Beiträge getaggt mit Brainfuck

Introducing „brainfuck“: Idiome


(Dieser Artikel ist die Fortsetzung von Introducing „brainfuck“)

Idiome

„Idiome“ im Sinne (meiner Implementierung) von „brainfuck“ sind kurze, immer wiederkehrende Code-Sequenzen, die man tausende Male am Tag braucht, wenn man produktiv mit brainfuck arbeiten will. Was kein Mensch will, der noch einigermaßen bei Verstand ist.

Die „Hardware“

Meine „brainfuck“ (bf) Maschine besteht aus 20 Speicherzellen die jeweils eine 16-Bit-Zahl ohne Vorzeichen beinhalten (0x0000 bis 0xFFFF). Inkrementiert man (2^16)-1 bekommt man eine Null. Dekrementiert man die Null, erhält man (2^16)-1 (0xFFFF). Prinzipiell kann ich jeden ganzzahligen Datentyp benutzen („generic brainfuck“), aber 16-Bit unsigned hat sich als guter Kompromiss herausgestellt zwischen Laufzeiten für simples Löschen u.Ä. und dem, was man berechnen kann, ohne gleich Multi-„Byte“ Datentypen zu implementieren. Oder gar float.

Wenn ich mich mal so richtig scheiße fühle und Bock auf Alpträume habe, fange ich vielleicht mal eine floating-point Addition an …

Fehlerzustände oder gar -Meldungen gibt es keine.

Ein bf-Programm wird so lange ausgeführt, bis eine der folgenden Bedingungen zutrifft:

  • Der Speicherzeiger wird über die Grenzen des vorhandenen Speichers hinaus verschoben.
  • Der Befehlszeiger wird über die Grenzen des vorhandenen Programms hinaus verschoben. Üblicherweise bedeutet das, dass das Programm am Ende angekommen ist.
  • Nicht bekannte Instruktionen (bis auf eine Ausnahme, siehe unten) werden einfach ignoriert und der IP (Befehlszeiger) einfach eine Position weiter geschaltet.
  • Der „Interpreter“ trifft auf den Befehl „!“. Das ist eine von mir eingeführte Erweiterung der Sprache. Es repräsentiert einen Breakpoint. Meine Maschine wird angehalten und man kann sich alle Speicherinhalte usw. in Ruhe angucken. Danach kann man die Maschine weiter laufen lassen.

Den Rest des Beitrags lesen »

, , ,

Hinterlasse einen Kommentar

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

Kurzschluss im Gehirn?


Mir ist gerade was Krasses passiert:

Ich halte in der linken Hand eine Flasche Wasser und will gerade daraus trinken, weil ich den Impuls dazu verspüre. Gleichzeitig nehme ich eine Zigarette aus dem Mund und will die Asche abklopfen.

Was tu‘ ich im Endeffekt: Den Rest des Beitrags lesen »

, , , , , , , , , ,

2 Kommentare

Filmkritik: The Cube (1997)


Ich gucke mir diesen Film im Moment von DVD im englischen Originalton an.

Man darf ja heute nicht öffentlich lustig sein, also gucke ich mir privat Quatsch-Filme an — möglichst laut, damit es möglichst öffentlich wird — zwischendurch fahre ich zum Frühstücken zu McDo, zum Mittagessen zum BurgerKg., und heute abend wird gegrillt.

Dieser Film ist wirklich super. Auch deutsch synchronisiert hat er mir damals gut gefallen. Ich kann allerdings nicht glauben, dass dieser Film schon fast 15 Jahre alt ist.

Klar, er hat seine Macken, wie jeder derartig konstruierte Film, aber ich finde ihn geil!

Alle folgenden Übersetzungen sind frei Schnauze; ich habe die deutsche Variante zwar mal gesehen, aber das ist zulange her. Ich übersetze also einfach frei.

Bisher (bis Minute 21) hat mir folgender Satz am besten gefallen; der Cop Quentin nimmt den Kopf der Schülerin, die so gut mit Zahlen kann, in die Hand und sagt:

Oh, you beautiful brain! (Oh, Du bewundernswertes Gehirn!)

Oh, und im Moment fängt die Ärztin an ernsthafte Entzugserscheinungen (Rauchen!) zu zeigen. Wie gut ich das doch nachvollziehen kann.

Weitere Zitate: Den Rest des Beitrags lesen »

, , , , , , , ,

Hinterlasse einen Kommentar