Cow Programmiersprache / Interpreter
Kategorisierung: | Esoterische Programmiersprache |
Siehe auch: | Brainfuck, Ook-ook!, Hohoho! |
Herkunft / Verwendung: | Cow ist eine Erweiterung der esoterischen Programmiersprache Brainfuck um weitere 4 Befehle. Sie verwendet dreistellige Kombinationen der Zeichen M, m, O und o, um die wichtigsten Programmfunktionen (Zeiger, Werte, Ausgabe, Eingabe, Sprünge, Register) abzubilden. Sie ist schwer lesbar, umständlich und ineffizient und eher als Scherz oder Machbarkeitsstudie gedacht. Ein Cow-Code hört sich wie das Muhen einer Kuh (engl. "Moo" = dt. "Muh") an, daher der Name. Der Code zur Ausgabe von "Hallo" ist z. B. "MoO MoO MoO MoO MoO MoO MoO MoO MOO MOo moO MoO MoO MoO MoO MoO MoO MoO MoO MoO mOo moo moO Moo mOo MoO MoO MoO MoO MoO MOO MOo moO MoO MoO MoO MoO MoO mOo moo moO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo". Cow-Code ist noch schwerer lesbar als Brainfuck-Code und ähnelt von der Lesart her eher Ook als Brainfuck. |
Spezifikation der Cow-Befehle
Befehlsnr. | Befehl | Brainfuck | Beschreibung |
---|---|---|---|
6 | MoO | + | den Wert der aktuellen Zelle um 1 erhöhen |
5 | MOo | - | den Wert der aktuellen Zelle um 1 verringern |
2 | moO | > | eine Zelle nach rechts gehen |
1 | mOo | < | eine Zelle nach links gehen |
7 | MOO | [ | Schleifenanfang - die Schleife durchlaufen solange der Wert der aktuellen Zelle ungleich 0 ist |
0 | moo | ] | Schleifenende - beendet die Schleife, wenn der Wert der aktuellen Zelle gleich 0 ist |
4 | Moo | . | den Wert der aktuellen Zelle ausdrucken, wenn Zellenwert ungleich 0 |
4 | Moo | , | einen Wert von der Tastatur in die aktuelle Zelle einlesen, wenn Zellenwert = 0 |
3 | mOO | ! | den Wert in aktueller Zelle als Befehl (0-11) ausführen |
8 | OOO | / | den Wert in aktueller Zelle auf 0 setzen |
9 | MMM | ^ | wenn Register leer, dann aktuellen Zellenwert hineinkopieren, wenn Register nicht leer, aktuellen Zellenwert aus Register holen und Register löschen |
10 | OOM | : | den Wert der aktuellen Zelle als Zahl ausdrucken |
11 | oom | ; | einen Zahlwert von der Tastatur in die aktuelle Zelle einlesen |
*Für die Cow-Befehle 3, 8, 9, 10, 11 gibt es keine Entsprechung in Brainfuck.
Beispiel
Klartext: | Hallo |
Brainfuck: | ++++++++[->+++++++++<]>.<+++++[->+++++<]>.+++++++++++..+++. |
Cow: | MoO MoO MoO MoO MoO MoO MoO MoO MOO MOo moO MoO MoO MoO MoO MoO MoO MoO MoO MoO mOo moo moO Moo mOo MoO MoO MoO MoO MoO MOO MOo moO MoO MoO MoO MoO MoO mOo moo moO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo |