Beatnik (Programmiersprache)

Beatnik (Programmiersprache)

Beatnik ist eine esoterische Programmiersprache, entwickelt von Cliff L. Biffle vermutlich im Jahr 2001.[1]

Beatnik verwendet, ähnlich wie Forth, einen Stack, hat aber einen wesentlich kleineren Sprachumfang.

Im Gegensatz zu herkömmlichen Programmiersprachen verwendet Beatnik keine feste Zuordnung zwischen Schlüsselwörtern und Funktionen. Ihr Wortschatz ist der der englischen Sprache. Jedes Wort wird nach den englischen Scrabble-Regeln bewertet und entsprechend dem Punktewert eine Funktion zugewiesen. Scrabble vergibt für jeden Buchstaben eines Wortes Punkte, umso mehr Punkte, je seltener dieser Buchstabe in der jeweiligen Sprache verwendet wird.

Beatnik ist für den praktischen Einsatz nicht geeignet, kann jedoch wie viele andere esoterische Programmiersprachen in der Lehre verwendet werden, um Konzepte des Sprachdesigns zu verdeutlichen. Mit der Eigenart, einen natürlichsprachlichen Text in nicht offensichtlicher Weise als Programmtext zu verwenden, demonstriert Beatnik auch Konzepte der Steganografie.

Inhaltsverzeichnis

Syntax

Alle Rechenoperationen in Beatnik werden auf einem Stack ausgeführt. Der einzige Datentyp von Beatnik ist ein vorzeichenloser 8-Bit-Wert, es können also nur Werte von 0 bis 255 dargestellt werden.

Die Werte pro Buchstaben im englischen Scrabble sind wie folgt:

  • 1 Punkt: E, A, I, O, N, R, T, L, S, U
  • 2 Punkte: D, G
  • 3 Punkte: B, C, M, P
  • 4 Punkte: F, H, V, W, Y
  • 5 Punkte: K
  • 8 Punkte: J, X
  • 10 Punkte: Q, Z

Eine Überprüfung, ob es sich um ein gültiges Wort der englischen Sprache handelt, findet nicht statt. Ebenso ist es nicht notwendig, dass der Text natürlichsprachig einen Sinn ergibt. Der Autor der Sprache benutzt dies, um ein Beispielprogramm zu schreiben, das aus einer sinnfreien Aneinanderreihung von Wörtern besteht, womit er den Namen Beatnik begründet.

Punktewert Funktion
<5 Keine Funktion. Der Interpreter kann möglicherweise den Programmierer wegen seiner schlechten Punktewerte aufziehen.
5 Schreibt den Punktewert des nächsten Wortes auf den Stack, das betroffene Wort wird dann nicht weiter interpretiert
6 Entfernt den obersten Wert vom Stack
7 Addiert (und entfernt) die beiden obersten Werte auf dem Stack miteinander und schreibt das Ergebnis auf den Stack
8 Wartet auf einen Tastendruck und schreibt diesen auf den Stack
9 Entfernt den obersten Wert vom Stack und schreibt diesen als ASCII-Zeichen auf den Bildschirm / Output
10 Subtrahiert den obersten Wert auf dem Stack vom zweitobersten und schreibt das Ergebnis auf den Stack (Ausgangswerte werden entfernt)
11 Vertauscht die Positionen der beiden obersten Werte auf dem Stack
12 Schreibt den obersten Wert auf dem Stack nochmals auf den Stack (Duplikation)
13 Bedingter Sprung. Das nächste Wort wird als Sprungdistanz »n« verwendet. Der oberste Wert vom Stack wird entfernt, ist dieser gleich Null, so werden n+1 Worte übersprungen
14 Bedingter Sprung. Wie vorstehend, jedoch wird bei <>0 gesprungen
15 Bedingter Rückwärtssprung. Bei 0 wird um n Worte rückwärts gesprungen
16 Bedingter Rückwärtssprung. Bei <>0 wird um n Worte rückwärts gesprungen
17 Programmstopp
18–23 Keine Funktion. Aufgrund der hohen Punktzahl wird der Interpreter den Programmierer aber nur dann aufziehen, wenn er einen schlechten Tag hatte
>23 Der Interpreter applaudiert dem Programmierer für die hohe Punktzahl

Die Beschreibung für die Bedeutung der Werte <5, 18–23 und >23 zeigt, dass der Autor bei der Definition der Sprache eigentlich primär einen Scherz beabsichtigt hatte. Allerdings hat dieser Scherz zu mehreren tatsächlichen Implementierungen der Sprache geführt.

Beispiele

Der Satz »Hello, aunts! Stay around breads!« in Scrabble-Werte übertragen, ergibt das Programm 8, 5, 7, 7, 9. Es wird also ein Zeichen eingelesen, dann wird 7 auf den Stack gelegt, die beiden Werte werden addiert, dann wird das neue Zeichen ausgegeben.

Das gleiche Ergebnis würde auch die Lautfolge »Badaa buu bub bub bllub« ergeben, was sehr deutlich zeigt, wie wenig offensichtlich der Zusammenhang zwischen Darstellung und Funktion bei Beatnik ist.

Der Autor der Sprache gibt auf seiner Website den Satz »Hello, aunts! Swim around brains!« als Beispiel an, dies ergibt 8, 5, 9, 7, 8. Es wird also ein Zeichen eingelesen, dann wird 9 auf den Stack gelegt, die beiden Werte werden addiert und dann wird ein weiteres Zeichen eingelesen. Offensichtlich ist dieser Programmcode nicht korrekt.

Siehe auch: Beatnik in einer Liste von Hallo-Welt-Programmen

Einzelnachweise

  1. Cliff L. Biffle: Beatnik

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Esoterische Programmiersprache — Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern ungewöhnliche Sprachkonzepte umsetzen. Eine einfache Bedienung ist selten, teilweise werden Sprachen konzipiert, um… …   Deutsch Wikipedia

  • Liste von Hallo-Welt-Programmen/Programmiersprachen — Dies ist eine Liste von Hallo Welt Programmen für gebräuchliche Programmiersprachen. Weitere Beispiele für grafische Benutzeroberflächen, Web Technologien, exotische Programmiersprachen und Textauszeichnungssprachen sind unter Liste von Hallo… …   Deutsch Wikipedia

  • Liste der Programmiersprachen — A A (Programmiersprache) A# A+ A 0 A 1 A 2 A 3 A9 AACC AADL AAIMS aal AAPL Aardappel AARDVARK Abacus ABACUS 10 ABACUS/X ABAP ActionScript Ada ADbasic AgentSpeak(L) Agilent VEE AHDL Aleph ALGOL (ALGOL 60, ALGOL W, ALGOL 68) Amber …   Deutsch Wikipedia

  • Weird Programming — Esoterische Programmiersprachen sind Programmiersprachen, die nicht für den praktischen Einsatz entwickelt wurden, sondern ungewöhnliche Sprachkonzepte umsetzen. Eine einfache Bedienung ist selten, teilweise werden Sprachen konzipiert, um… …   Deutsch Wikipedia

  • Liste von Programmiersprachen — Inhaltsverzeichnis A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A A# A+ …   Deutsch Wikipedia

  • HQ9+ — ist eine Parodie auf esoterische Programmiersprachen, die selbst nicht Turing vollständig ist, da weder bedingte Anweisungen noch Schleifen möglich sind. Entwickelt wurde HQ9+ vom späteren Google Mitarbeiter Cliff L. Biffle, der daneben auch die… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”