Deadfish Programmiersprache / Interpreter

Herkunft / Verwendung:Deadfish ist eine esoterischen Programmiersprache, die rein zum Spaß erfunden wurde. Sie verwendet die Zeichen "i", "d", "s" und "o", um die rudimentäre Programmfunktionen abzubilden.

Als alternative Befehlsbuchstaben können in einer anderen Variante auch die Buchstaben "x", "d", "k" und "c" benutzt werden. Die Funktion und Reihenfolge bleibt dabei die gleiche wie oben.

Deadfish ist schwer lesbar, umständlich und ineffizient und eher als Scherz oder Machbarkeitsstudie gedacht.

In den ursprünglichen Version von Deadfish gibt es nur eine Ausgabe als Zahlenwerte. Wenn dies ASCII-Werte sind, müsste man diese selbst zu den entsprechenden Zeichen umformen. Es gibt hier aber eine Option, dass dies automatisch geschieht.

Warum diese "Programmiersprache", so extrem rudimentär wie sie ist - sie verfügt zum Beispiel nicht einmal über Schleifen oder Sprunganweisungen - die Quadrarierung als weiteren Befehl implementiert, darf trefflich hinterfragt und diskutiert werden. Wäre es nicht vielleicht sinnvoller gewesen, ein Verdoppeln und/oder ein Halbieren per Befehl einzubauen? Besonders doch auch, weil dies leicht durch Bit-Shift bzw. ROL-Befehle, die in jedem 8-Bit-Mikroprozessor vorhanden sind, geschehen kann; im Gegensatz zur Quadrierung, die eine noch zu programmierende Funktion darstellt.

Die Quadrierung hat auch keinen großen Nutzen, einen viel geringeren als ein Verdoppeln/Halbieren in Hinsicht auf kürzere Kodierungen. Aber wie immer bei esoterischen Programmiersprachen darf man nicht so sehr auf die Zweckmäßigkeit schauen, vielleicht war die Witzlosigkeit des Quadrieren-Befehls ja gerade der Witz.

Deadfish wurde von Jonathan Todd Skinner ersonnen.

Spezifikation

Ein Deadfish-Programm kennt nur eine einzige, acht Bit breite Speicherstelle, die Zahlen zwischen 0 und 255 aufnehmen kann. Diese Speicherstelle, auch Akkumulator genannt, wird zu Programmbeginn mit 0 initialisiert. Wird der Akku durch Befehle kleiner 0, erfolgt ein Überlauf, das heißt: 0 minus 1 ergibt 255. Das selbe gilt für die andere Richtung 255 plus 1 ergibt 0.

Deadfish besitzt vier Befehle, jeweils bestehend aus einem einzigen Zeichen:

ZeichenÄquivalentBedeutung
i (x)akku = akku + 1(i)nkrementiert (erhöht) den Akkumulator um eins
d (d)akku = akku - 1(d)ekrementiert (erniedrigt) den Akkumulator um eins
s (k)akku = akku * akkuquadriert den Akkumulator ((s)square)
o (c)print akkugibt den Akkumulator aus, je nach Modus als ASCII-Zeichen oder Wert zwischen 0 und 255


Beispiel

Klartext:A fish rots from the head down
Kodiert: iisiiiisiodddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiioiiiiiiiiiiodddddddddddoddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiodddoiiiiiododddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiiodddoddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddddddddddodddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiodddoddddoiiioddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiioiiiiiiiiodddddddddo
i i s i i i i s i o 1 2 4 5 6 7 8 64 65 ---> ASCII (65) = "A" Akku=65 d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d o 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 --> ASCII(32) = Leerzeichen Akku=32 usw.

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)

Quellen, Literaturverweise und weiterführende Links

Deadfish auf esolangs.org