PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : <[<]>[.>]\0Esoterische Programmiersprachen



DFYX
23.09.2009, 21:35
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 (http://www.bigzaphod.org/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.


"Hello, World!" is waiting at the Writer's Depot.
Go to Writer's Depot: west 1st left, 2nd right, 1st left, 2nd left.
Pickup a passenger going to the Post Office.
Go to the Post Office: north 1st right, 2nd right, 1st left.
Go to the Taxi Garage: north 1st right, 1st left, 1st right.

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.

drunken monkey
23.09.2009, 21:57
Ich finde Brainfuck2D (http://www.freakx.net/bf2d/) 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. ^^"

Hier ein Beispiel-Hello-World. (http://www.freakx.net/bf2d/hello.b2d)

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.

DFYX
23.09.2009, 22:23
BF2D ist einfach nur noch krank. Schon allein, weil man das mit keinem gängigen Editor ohne massiven Aufwand schreiben kann.

Manuel
23.09.2009, 22:34
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 (http://www.4mhz.de/bfdev.html) ansehen :D . Irgendwo habe ich auch noch ein Game of Life (http://de.wikipedia.org/wiki/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^^.

drunken monkey
23.09.2009, 22:55
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

FF
24.09.2009, 18:10
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)


Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

WeTa
24.09.2009, 18:58
Ook! rockt :D
Mein Favorit in Sachen Esoterik ist aber definitiv SPL (http://www.treskal.com/kalle/spl/) :A

Ineluki
24.09.2009, 20:37
Ja, Shakespeare Programming Language ist schon sehr sehr nett ...
Auch wenn ich die Goto Statement Konstruktion (bzw generell die Syntax) etwas relaxieren wuerde.




A Neverending Story.

Caliban, an ugly dwarf.

Act I: A strange monologue.

Scene I: In the middle of the forrest.

[Enter Caliban]

Caliban:
I am as stupid as the sum of an ingenerouse arrogant
incompetent malevolent infected idiot and a fart
multiplied by a pig. But I wouldn't like to be as disgusting
as myself multiplied by a maggot. If I could only
speak my mind. So maybe I should start all over again.

[Exeunt]

treeghost
25.09.2009, 15:33
HelloWorld is a zombie
summon
task SayHello
say "Hello World!"
animate
animate

oder

Zombie1 is a zombie
summon
remember 1
bind

Zombie2 is a zombie
summon
remember 1
bind

FibonacciZombie is a zombie
summon
remember 0
task SayFibonaccis
shamble
say moan Zombie1
say moan Zombie2
remember Zombie1 moan Zombie1 moan Zombie2
remember Zombie2 moan Zombie1 moan Zombie2
remember moan 2
until remembering 100
animate
animate

XD
http://www.dangermouse.net/esoteric/zombie.html


Nach Shakespeare Programming Language einer meiner Liebsten Prog.sprachen.:D

Irian
25.09.2009, 17:03
Ich fand Whitespace immer ganz amüsant - aber nun muß ich zugeben, dass die SPL das natürlich bei weitem schlägt, sehr stylisch :-)

Desmulator
25.09.2009, 19:32
Say hello.













































































































<3

EDIT: Schade, der Code (http://compsoc.dur.ac.uk/whitespace/hworld.ws) wird getrimmt -> Whitespace wird gelöscht.^^

DFYX
28.09.2009, 14:28
Zombie find ich relativ langweilig. Ist halt eine ganz normale Programmiersprache mit veränderten Keywords. Da ist sowas wie Piet lustiger.

Eli
11.10.2009, 19:52
Also irgendwie würde ich ja wahnsinnig werden mit SPL oder BF. @_@
Ok, Befunge ist auch ziemlich krass.

Ineluki
12.10.2009, 01:11
BF ist doch ziehmlich Assemblernah, nur recht umstaendlich.

drunken monkey
12.10.2009, 11:28
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. :O

Ineluki
12.10.2009, 13:25
Ich bezog mich nicht darauf, wie gut es sich schreiben laesst, sondern dass die Befehle in ein Assemblersubset fast bijektiv abbildbar sind.

Ausserdem hat doch klassisches BF eine absolute Trennung zwischen Daten und Code, was Assembler nicht hat. Oo

Von der Schreibung her hast du allerdings recht. Es ist viel einfacher, in Assembler zu schreiben, als in BF.

drunken monkey
12.10.2009, 13:37
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.

Ausserdem hat doch klassisches BF eine absolute Trennung zwischen Daten und Code, was Assembler nicht hat. Oo
Ahja, das war natürlich Schwachsinn. ^^"

elsen
23.11.2009, 20:55
Assembler ist für BF, was C für Assembler ist. :O

Kann das jemand freundlicherweise kurz erklären?

DFYX
23.11.2009, 21:07
Kann das jemand freundlicherweise kurz erklären?

Im Vergleich zu Assembler ist C eine Hochsprache, im Vergleich zu Brainfuck ist Assembler schon eine.

elsen
23.11.2009, 21:21
ah' so... danke.