Fast jeder kennt sie, viele lieben sie: esoterische Programmiersprachen, mit denen man zwar nicht viel praktisches anstellen kann, die aber trotzdem irgendwie cool sind.
Mein momentaner Favorit ist Taxi, deren Code aussieht, wie die Fahranweisungen für einen Taxifahrer - Benzinverbrauch eingeschlossen. Im Taxi haben drei Fahrgäste (Variablen) Platz, man kann definieren, wo Fahrgäste aufgenommen und abgeladen werden und jede Funktion (addieren, subtrahieren, String ausgeben) entspricht einem Ort auf dem Stadtplan.
Das ist ein vollständiges (und wahrscheinlich das kürzest mögliche) Hello World in Taxi. Im Writer's Depot kann man Strings definieren, das Post Office stellt stdin/stdout dar und Taxi Garage ist der Start- und Endpunkt jedes Programms.
Es gibt tatsächlich ein paar sinnvolle Programme, die in Taxi geschrieben sind, aber alles, was komplexer ist, als ein Taschenrechner, produziert laaaaangen Code. Unter anderem, weil man bei Verzweigungen (siehe Website) immer darauf achten muss, dass der Tank auf jeden Fall ausreichend gefüllt ist.
Wenn es einer von euch schafft, einen vollständigen Taxi-Interpreter in Taxi zu schreiben, geb ich demjenigen einen Drink aus, versprochen
P.S.: wenn man "\0" durch ein Nullbyte ersetzt, ist das Topic ein vollständig funktionsfähiges Programm in einem Brainfuckdialekt, bei dem der Code mit im adressierbaren Arbeitsspeicher liegt und dessen Pointer am Anfang auf dem ersten freien Byte nach dem Code steht.
Ich finde Brainfuck2D ja recht cool, das ist selbst für esoterische Sprachen noch esoterisch. XD Und irgendwo müsste hier sogar noch ein BF2D-Happy-Birthday-Programm von mir rumfliegen. ^^"
Die Befehle sind die gleichen wie in Brainfuck, werden jedoch statt durch normale Zeichen durch die Richtungsänderungen eines virtuellen "Fadens", der durch Nicht-Whitespace-Zeichen vorgegeben wird, angegeben.
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Ich finds ja stellenweise geil, was für ein Riesenaufwand teilweise betrieben wird, um z.B. IDEs und komplexe Programme für bzw. in esoterische Programmiersprache zu erstellen. Wer "professionell" BrainFuck programmieren will, sollte sich mal Brainfuck Developer ansehen . Irgendwo habe ich auch noch ein Game of Life, geschrieben in BrainFuck, gesehen...
Ansonsten ist mir meine Zeit meistens zu schade, um mich mit esoterischen Programmiersprachen wirklich zu beschäftigen^^. BrainFuck ist die einzige die ich mir angetan habe, weil es so ziemlich die einfachste der mir bekannten esoterischen Sprachen ist... Wenn man sich einen ganzen Tag damit beschäftigt, schwirren einem beim Zu-Bett-Gehen und beim Aufstehen lauter Plusse, Minusse und Klammern im Kopf herum, und DAS will ich nie wieder erleben, da bekommt man Kopfschmerzen^^.
BF2D ist einfach nur noch krank. Schon allein, weil man das mit keinem gängigen Editor ohne massiven Aufwand schreiben kann.
...
Ach, man muss ja nur alles erst mit Leerzeichen zuhauen und dann auf Überschreiben stellen. ^^" Viel einfacher geht's eigentlich nicht mehr, wenn man sich nicht gerade was bastelt um PNGs in BF2D-Programme umzuwandeln. XD
Naja, außerdem soll's natürlich auch nicht zu einfach sein, sonst kann man ja auch Python nehmen. ;O
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
gibts keine BF -> BF2D dingse? Sollte doch recht einfach umzusetzen sein?
(So wie eigentlich alles, das nach festen immer gleichen regeln funktioniert)
Oder gibt es da unüberwindbare probleme?
Ansonsten finde ich ja Ook! sympatischer als BF hat irgendwie schöneren und melodischeren Code.
Ein Beispiel für Hello World (laut Wiki)
--
cats are not characteristically disposed toward voluntary aerobic exercise
Ja, Shakespeare Programming Language ist schon sehr sehr nett ...
Auch wenn ich die Goto Statement Konstruktion (bzw generell die Syntax) etwas relaxieren wuerde.
BF ist doch ziehmlich Assemblernah, nur recht umstaendlich.
...
Ich weiß nicht, also ich finde Assembler ungleich übersichtlicher/angenehmer als BF. o_O"
Alleine dass man keine Trennung zwischen Daten und Code, oder Registern und Speicher hat, ist extrem nervig. In Assembler habe ich schon durchaus sinnvolles geschrieben (unter anderem für eine Java VM), aber in BF kann ich mir nicht vorstellen, dass das möglich ist.
Assembler ist für BF, was C für Assembler ist.
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Ich bezog mich nicht darauf, wie gut es sich schreiben laesst, sondern dass die Befehle in ein Assemblersubset fast bijektiv abbildbar sind.
...
Naja, eben Subset, also eigentlich einfach deutlich schlechter. Aber vielleicht habe ich auch einfach nur "~nah" falsch aufgefasst.
Zitat
Ausserdem hat doch klassisches BF eine absolute Trennung zwischen Daten und Code, was Assembler nicht hat. Oo
...
Ahja, das war natürlich Schwachsinn. ^^"
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.