Esoterische Programmiersprachen
Ich erkläre das Thema der Geschichte der Programmiersprachen hiermit als beendet. Als nächstes möchte ich mich um ein bischen Unterhaltung kümmern und gehe auf die etwas merkwürdigeren Vertreter aus der Gattung der Programmiersprachen ein.
Hierhin fallen auch alle sogenannten "Esotherischen Programmiersprachen", welche laut Wikipedia zur Umsetzung ungewöhnlicher Sprachkonzepte da sind. Als einen Vertreter aus diesen Reihen möchte ich das nicht zu unrecht so genannte *Entschuldigung* "Brainfuck", nennen, auch Brainf*ck, Brainf*** oder BF genannt.
Laut Wikipedia dient Brainf*** unter anderem um Grundlagen der Computertechnik zu lernen.
Hier ein Codebeispiel:
++++++++++ [ >+++++++>++++++++++>+++>+<<<<- ] Schleife zur Vorbereitung der
Textausgabe >++. Ausgabe von 'H' >+. Ausgabe von 'e' +++++++. 'l' . 'l' +++. 'o' >++. Leerzeichen <<+++++++++++++++. 'W' >. 'o' +++. 'r' ------. 'l' --------. 'd' >+. '!' >. Zeilenvorschub +++. Wagenrücklauf
Die Kommentare machen deutlich, dass es sich um eine Sprache handelt die stark an Assembler erinnert. Brainfuck besitzt lediglich acht Befehle, mit denen sich alle prozeduralen Funktionen ausführen lassen:
Zeichen | C-Äquivalent | Semantik |
---|---|---|
> | ++ptr; | inkrementiert den Zeiger |
< | --ptr; | dekrementiert den Zeiger |
+ | ++*ptr; | inkrementiert den aktuellen Zellenwert |
- | --*ptr; | dekrementiert den aktuellen Zellenwert |
. | putchar(*ptr); | Gibt den aktuellen Zellenwert als ASCII-Zeichen auf der Standardausgabe aus |
, | *ptr = getchar(); | Liest ein Zeichen von der Standardeingabe und speichert dessen ASCII-Wert in der aktuellen Zelle |
[ | while (*ptr) { | Springt nach vorne, hinter den passenden ] -Befehl, wenn der aktuelle Zellenwert null ist |
] | } | Springt zurück, hinter den passenden [ -Befehl, wenn der aktuelle Zellenwert verschieden von null ist |
Der Entstehende Code ist aufgrund der wenigen Verwendeten Symbole und der kaum vorhandenen Struktur sehr schwer zu lesen, was der Sprache wohl zu Ihrem Namen verholfen hat.
Keine Kommentare:
Kommentar veröffentlichen