Aktionen

Beatnik: Unterschied zwischen den Versionen

Aus exmediawiki

 
(73 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
In 2000, [http://cliffle.com/about/ Cliff Biffle] created Beatnik.
+
'''short Intro to the'''
 +
 
 +
'''"Beatniks"...'''
 +
[[Datei:Beatnik-2.jpg|mini|hochkant]]
 +
so nannten sich die Schreiber einer literarischen Avantgardebewegung in etwa der Mitte des vorigen Jahrhunderts.
 +
Es war damals Jack Kerouac, der den Begriff der ''Beat-Generation'' in die New Yorker Literaturszene einführte. Die Autoren die sich mit dieser selbst gesetzten ''Generation'' identifizierten, benannten sich nicht nur in Analogie zur Lost-Generation (F. Scott Fitzgerald, Ernest Hemingway, Gertrude Stein u.v.m.), auch ihr Umgang mit dem Schreiben steht in direkter ästhetischer Tradition zu ihnen.
 +
 
 +
Als ''"die, die im Rhytmus schreiben"'', wurden sie alsbald bezeichnet, die Beatniks. Sie machten sich im poietischen Sinne die Sprachtechnologien ihrer Zeit zu eigen. Ihre Poesie schien sich dem bewußt zu sein, was Hannah Arendt ein paar Jahre später wie folgt beschrieb: ''"...daß der Mensch sich an diesen Rhythmus der Maschinen gewissermaßen schon gewöhnt haben mußte, als er ein soches Ding wie eine Maschine auch nur im Geist konzipierte."'', denn mindestens solange unsere Arbeit an, und mit und durch unsere Maschinen andauert, solange treten auch ihre mechanischen Prozesse, ihre diskreten Zeiteinheiten an Stelle unseres uns eigenen Körperrhythmus: ''"Noch das raffinierteste Werkzeug bleibt ein Diener seines Herrn, unfähig die Hand zu leiten oder sie zu ersetzen. Aber selbst die primitivste Maschine leitet die Arbeit des Körpers, bis sie sie schließlich ganz und gar ersetzt."'', so Arendt in ihrer »vita activa«:
 +
 
 +
<div align=right><big>''„Wer Dichtung will muß auch die Schreibmaschine wollen...“'' < Arno Schmidt</big></div>
 +
 
 +
 
 +
William S. Burroughs war der wohl ambivalenteste Beat-Literat seiner Zeit. Er stellte Sprache oft als etwas dem Menschen Fremdes dar.
 +
Für Burroughs ist Sprache ein Virus, ein Wort-Virus der evolutionär unsere Kehlköpfe verändert hat und gesellschaftliche Normen von Generation zu Generation weiterschreibt. Dies schrieb Burroughs in seiner »Electronic Revolution« im Jahr 1971, die Gilles Deleuze in weiten Teilen zu seiner Vorstellung der "society of control" verhalf. In diesem Essay stellte Burroughs u.a. Konzepte auf wie wir diese Gesellschaftsform grammatikalisch zerwürfeln (to scramble) können, um hierdurch die Kontrollsyntax zu entschlüsseln (to unscramble) wozu er in »Rub Out the Word« zusammen mit Brion Gysin 1978 folgende 3 Schritte herausarbeitet:
 +
[[Datei:Wbi.png|mini|hochkant]]
 +
* Löschen Sie '''1.''' die Kopula (sein / bleiben), diese Satzbänder mit zwar überaus wichtiger grammatischer Funktion zur Identitätsbildung, doch mit eher schwach ausgeprägter Bedeutung.
 +
* '''2.''' Ersetzen Sie bestimmte Artikel (der) vor Substantiven durch unbestimmte Artikel (ein), d.h. vermeiden Sie eine Verdinglichung
 +
* und ersetzen Sie '''3.''' entweder/oder mit und, was soviel heißt wie das Gesetz des Widerspruchs zu ignorieren.
 +
 
 +
 
 +
Burroughs' Kontrollsyntax dringt in das gesellschaftliche Subjekt ein und bestimmt sein ganzes Denken und Handeln. Ein Weg, dieser Herrschaftssprache zu entkommen, war für Burroughs die literarische Anwendung der von ihm und Boris Gysin entwickelten ''Cut-Up Technik'': durch zufälliges Collagieren von Textteilen finden sich neue Assoziationen durch die verborgene Sinnebenen in Erscheinung treten um ''"über den Begriff durch den Begriff hinauszugelangen"'', im Sinne von Adorno. Nur ein Beispiel für Technologien der Beatniks gegen die "squareness" ihrer Zeit, deren Essenz die totale Abwesenheit von Qualität darstellte, ''"jene rein intellektuelle, pedantische, spießige Grundhaltung"'', wie sie Robert Pirsig in seinem »Zen und die Kunst ein Motorrad zu warten« beschrieb. Ihre Suche nach Möglichkeiten die Grenzen der Sprache auszuloten und die Voraussetzungen des Verstehens zu entschlüsseln, eben weil die herrschende Sprache die Sprache der Herrschenden ist, ein dominant-legitimer Sprachgebrauch, den es durch den Gebrauch alternativer Sprach-Techniken zu formulieren gilt. Wenn auch wie jegliche Form der Sprachkritik natürlich mit sprachlichen Mitteln.
  
Beatnik is a stack-based language that consists only of English words. Every word is assigned a numerical score that it would get in a game of Scrabble. (Scrabble enthusiasts, drop your pitchforks, there may be some words that go against the official Scrabble rules.) Then, the value of the score determines the function.
 
  
----
 
  
Beatnik is a simple stack-oriented esoteric programming language, by Cliff L. Biffle. A beatnik program consists of any sequence of English words; each word is assigned the score you would get for it in a Scrabble game. The value of the score determines what function is performed. Functions include pushing the score of the next word onto the stack, testing the stack and skipping forward or backward in the program and other stack operations.
+
=the Programming Language=
 +
[[Beatnik]] ist eine einfache stapelorientierte [https://exmediawiki.khm.de/exmediawiki/index.php/Kategorie:Esolangs esoterische Programmiersprache] von [http://cliffle.com/esoterica/beatnik/ Cliff L. Biffle] (ca. 2001).  
  
----
+
Ein [[Beatnik]]-Programm besteht aus einer beliebigen Folge englischer (oder auch deutscher) Wörter; jedem Wort wird eine numerische Punktzahl zugewiesen (d.h. Befehle & Daten), die es in einem Scrabble-Spiel dafür erhalten würde. Der Wert der Punktzahl bestimmt, welche Funktion ausgeführt wird. Zu den Funktionen gehören das Schieben der Punktzahl des nächsten Wortes auf den Stapel, das Testen des Stapels und das Vorwärts- oder Rückwärtsspringen im Programm, sowie noch weitere Stapeloperationen.
  
The interpreter reads the words in the poem, ignoring punctuation and whitespace and newlines; some functions are one word, other functions have an argument (they are two-word functions). Two-word functions are described below in the form "5,n". This means both the word whose value is 5 and the next word (whose value is 'n') are read.
+
Der Interpreter liest die Wörter im Gedicht und ignoriert dabei Interpunktion, Leerzeichen und Zeilenumbrüche; einige Funktionen sind ein Wort, andere Funktionen haben ein Argument (es handelt sich um Zwei-Wort-Funktionen). Zwei-Wort-Funktionen werden nachstehend in der Form "5,n" beschrieben. Das bedeutet, dass sowohl das Wort, dessen Wert 5 ist, als auch das nächste Wort (dessen Wert 'n' ist) gelesen wird.
  
 
----
 
----
  
<embedvideo service="youtube">https://www.youtube.com/watch?v=Wa1Dh7Ts_IY</embedvideo>
+
<div align="center"><embedvideo service="youtube">https://www.youtube.com/watch?v=Wa1Dh7Ts_IY</embedvideo></div>
  
 
----
 
----
  
==Scrabble Character Values==
+
===Scrabble Character Values===
 
<pre>
 
<pre>
 
--- ABCDEFGHIJKLMNOPQRSTUVWXYZ ---
 
--- ABCDEFGHIJKLMNOPQRSTUVWXYZ ---
Zeile 33: Zeile 52:
 
</pre>
 
</pre>
 
----
 
----
 +
A=1  B=3  C=3  D=2  E=1  F=4  G=2  H=4  I=1  J=8  K=5  L=1  M=3  N=1  O=1  P=3  Q=10  R=1  S=1  T=1  U=1  V=4  W=4  X=8  Y=4  Z=10
 +
----
 +
# = A E I L N O R S T U
 +
# = D G
 +
# = B C M P
 +
# = F H V W Y
 +
# K
 +
#
 +
#
 +
# = J X
 +
#
 +
# = Q Z
  
 +
----
 +
===Stack===
 +
see: https://en.wikipedia.org/wiki/Stack-oriented_programming
  
==Commands==
 
<pre>
 
5 Push the next word's value onto the stack.
 
6 Pop a number from the stack and discard it.
 
7 Pop two numbers, add them, and push the result.
 
8 Input a character and push its value.
 
9 Pop a number and output it as a character.
 
10 Pop two numbers, subtract the first one popped from the second one popped, and push the result.
 
11 Pop two numbers, swap them, and push them back.
 
12 Pop a number and push it twice.
 
13 Pop a number and skip ahead n (actually n+1) words if the number is zero.
 
14 Pop a number and skip ahead n (actually n+1) words if the number isn't zero.
 
15 Pop a number and skip back n words if the number is zero.
 
16 Pop a number and skip back n words if the number isn't zero.
 
17 Stop the program.
 
</pre>
 
----
 
noch überarbeiten:
 
<pre>
 
5 Schiebe den Wert des nächsten Wortes in den Stack.
 
6 Nehme eine Zahl vom Stack und wirf sie raus.
 
7 Nehme zwei Zahlen, füge sie hinzu und drücken Sie das Ergebnis.
 
8 Geben Sie ein Zeichen ein und drücken Sie seinen Wert.
 
9 Geben Sie eine Zahl ein und geben Sie sie als Zeichen aus.
 
10 Pop zwei Zahlen, subtrahieren Sie die erste knallte von der zweiten knallte und drücken Sie das Ergebnis.
 
11 Pop zwei Zahlen, tauschen Sie sie und schieben Sie sie zurück.
 
12 Geben Sie eine Nummer ein und drücken Sie sie zweimal.
 
13 Geben Sie eine Zahl ein und überspringen Sie n (tatsächlich n + 1 ) Wörter, wenn die Zahl Null ist.
 
14 Geben Sie eine Zahl ein und überspringen Sie n (tatsächlich n + 1 ) Wörter, wenn die Zahl nicht Null ist.
 
15 Geben Sie eine Zahl ein und überspringen Sie n Wörter, wenn die Zahl Null ist.
 
16 Geben Sie eine Zahl ein und überspringen Sie n Wörter, wenn die Zahl nicht Null ist.
 
17 Beenden Sie das Programm.
 
  
Jeder andere Scrabble-Wert, der als Befehl interpretiert wird, ist ein ''No-Op''.  
+
ein stack ist ein Stapel/Speicher der Nummern zur späteren Nutzung für uns speichert...
Beachte, dass die Befehle, die den Werten 5, 13, 14, 15 und 16 entsprechen, jeweils ein zusätzliches Wort lesen, ihr als Parameter verwenden und dann überspringen.  
+
 
Ein Wert von weniger als 5 kann dazu führen, dass der Dolmetscher Dich wegen Deiner schlechten Scrabble-Fähigkeiten verspottet.  
+
zahlen können dem stack hinzugefügt werden < <code>Push</code>
Bei einem Wert über 23 erhältst Du einen "Beatnik-Applaus".
 
</pre>
 
  
----
+
zahlen können vom Stack weggenommen werden < <code>Pop</code>
----
 
----
 
  
  
When Beatnik does arithmetic, it does it on a stack. For those of you who don't spend as much time doing this stuff as I do, a stack is very simple: you can push things onto the top of it, or take things off the top of it (in order, from top to bottom), and that's it. So, if you push 2 and 3, and then do an "add", 2 and 3 are "popped", added into 5, and then 5 is "pushed."
+
....Beatnik interpretiert Zahlen von 0-255.
  
The numbers Beatnik deals with can range from 0 to 255.
+
----
  
 +
===Commands===
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Score !! Function !! German Translation
+
! Score !! Pseudo-Code !! Description !! German Translation
 +
|-
 +
| <5
 +
|<code>NOOP</code>
 +
| Does nothing. The Beatnik Interpreter may mock you for your poor scoring, at its discretion.
 +
|Tut nichts. Der Beatnik-Dolmetscher kann Sie nach eigenem Ermessen wegen Ihrer schlechten Punktzahl verspotten.
 +
|-
 +
| 5,n
 +
|<code>push(n)</code>
 +
| Finds the score of the ''next'' word and '''push''' it onto the stack. the actual word with 5 is then skipped.|| Schiebe den Wert des nächsten Wortes in den Stack.
 +
|-
 +
| 6
 +
|<code>pop()</code>
 +
| Pops the top number off the stack and discards it.|| Lösche (Pop) die oberste Zahl vom Stapel.
 +
|-
 +
| 7
 +
|<code>push(pop()+pop())</code>
 +
| Adds the top two values on the stack together || Addiert die obersten zwei Werte miteinander. Nimmt (Pop) die 2 dann vom Stapel und legt (Push) das Ergebnis dann oben auf den Stapel
 +
|-
 +
| 8
 +
|<code>push(input())</code>
 +
| Input a character from the user and push its value on the stack. Waits for a keypress. || Wartet auf UserEingabe eines Zeichens und legt (Push) diese dann oben auf den Stapel
 +
|-
 +
| 9
 +
|<code>print(pop())</code>
 +
| Pop a number off the stack and output the corresponding [[ASCII-Tabelle|ASCII]] character to the screen. || Nimmt den obersten Wert vom Stapel und gibt dann den dazugehörigen [[ASCII-Tabelle|ASCII]]-Wert aus.
 
|-
 
|-
| <5 || Does nothing. The Beatnik Interpreter may mock you for your poor scoring, at its discretion. Low scoring words such as "I" or "of" are probably not good words to program with immediately after stealing all of the interpreter's cigarettes and stomping on its beret.||
+
| 10
 +
|<code>push(pop()-pop())</code>
 +
| Pop two numbers from the stack, subtract the first one popped from the second one popped, and push the result. || Nehme die obersten 2 zahlen vom stack und subtrahiere die erste von der zweiten. Das Ergebnis wird zurück in den Stack gelegt. 
 
|-
 
|-
| 5 || Finds the score of the ''next'' word and pushes it onto the stack. Skips the aforementioned next word.||
+
| 11
 +
|<code>a = pop(); b = pop(); push(a); push(b)</code>
 +
| Swap the top two values on the stack. || Die obersten 2 Zahlen miteinander vertauschen
 
|-
 
|-
| 6 || Pops the top number off the stack and discards it.||
+
| 12
 +
|<code>a = pop(); push(a); push(a)</code>
 +
| Duplicate the top value and pushes the value on top of the stack. || Den obersten Wert kopieren und mit oben auf den Stapel legen.
 
|-
 
|-
| 7 || Adds the top two values on the stack together (as described above)||
+
| 13,n
 +
|<code>if(top()==0) jump(+n)</code>
 +
| Pop a number from the stack, and figure out the score of the next word. If the number from the stack is zero, skip ahead by n words, where n is the score of the next word. (The skipping is actually n+1 words, because the word scored to give us n is also skipped.) || Nimmt (Pop) den obersten Wert vom Stapel und ermittel die Punktzahl des nächsten Wortes. Wenn die oberste Zahl '''eine 0''' ist, dann nimm sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann nach vorne.
 
|-
 
|-
| 8 || Input a character from the user and push its value on the stack. Waits for a keypress. ||  
+
| 14,n
 +
|<code>if(top()!=0) jump(+n)</code>
 +
| Same as above, except skip if the value on the stack isn't zero. || Nimmt (Pop) den obersten Wert vom Stapel und ermittel die Punktzahl des nächsten Wortes. Wenn die oberste Zahl '''keine 0''' ist, dann nimm sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann nach vorne.
 
|-
 
|-
| 9 || Pop a number off the stack and output the corresponding ASCII character to the screen. ||  
+
| 15,n
 +
|<code>if(top()==0) jump(-n)</code>
 +
| Skip ''back'' n words, if the value on the stack is zero. || Wenn die oberste Zahl '''eine 0''' ist, dann nehme sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann zurück.
 
|-
 
|-
| 10 || Subtract the top value on the stack from the next value on the stack, pushing the result. ||  
+
| 16
 +
|<code>if(top()!=0) jump(-n)</code>
 +
| Skip ''back'' if it's not zero. || Wenn die oberste Zahl '''keine 0''' ist, dann nehme sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann zurück.
 
|-
 
|-
| 11 || Swap the top two values on the stack. ||  
+
| 17
 +
|<code>exit()</code>
 +
| Stop the program. || Das Programm enden
 
|-
 
|-
| 12 || Duplicate the top value. ||  
+
| 18-23
 +
|<code>NOOP</code>
 +
| Does nothing. However, the score is high enough that the Beatnik Interpreter will not mock you, unless it's had a really bad day. || Tut nix
 
|-
 
|-
| 13 || Pop a number from the stack, and figure out the score of the next word. If the number from the stack is zero, skip ahead by n words, where n is the score of the next word. (The skipping is actually n+1 words, because the word scored to give us n is also skipped.) ||  
+
| >23
 +
|  
 +
| Generates "Beatnik applause" for the programmer. || Beatnik-Applaus für den Programmierer
 +
|}
 +
 
 +
* Jeder andere Scrabble-Wert, der als Befehl interpretiert wird, ist ein <code>NOOP</code>.  
 +
* Beachte, dass die Befehle, die den Werten '''5, 13, 14, 15''' und '''16''' entsprechen, jeweils ein zusätzliches Wort einlesen, den Wortwert als Parameter verwenden und ihn dann überspringen.  
 +
* Ein Wert von weniger als '''5''' kann dazu führen, dass der Interpreter Dich wegen Deiner schlechten Scrabble-Fähigkeiten verspottet.
 +
* Bei einem Wert über '''23''' erhältst Du einen "Beatnik-Applaus".
 +
 
 +
 
 +
{| class="wikitable"
 +
|+Legende
 
|-
 
|-
| 14 || Same as above, except skip if the value on the stack isn't zero. ||
+
!Pseudo-code
 +
!Meaning
 
|-
 
|-
| 15 || Skip ''back'' n words, if the value on the stack is zero. ||  
+
|<code>NOOP</code>
 +
|Do nothing
 
|-
 
|-
| 16 || Skip ''back'' if it's not zero. ||
+
|<code>pop()</code>
 +
|remove the value off the top of the stack, and return it
 
|-
 
|-
| 17 || Stop the program. ||
+
|<code>push(x)</code>
 +
|place x on the stack
 
|-
 
|-
| 18-23 || Does nothing. However, the score is high enough that the Beatnik Interpreter will not mock you, unless it's had a really bad day. ||
+
|<code>print(x)</code>
 +
|print the character x
 
|-
 
|-
| >23 || Garners "Beatnik applause" for the programmer. This generally consists of reserved finger-snapping. ||  
+
|<code>input()</code>
 +
|read a character from the user. Blocks until character is read.
 +
|-
 +
|<code>;</code>
 +
|separates multiple statements. They are run in order.
 +
|-
 +
|<code>if(expression) statement</code>
 +
|if and only if the expression is true, execute the statement
 +
|-
 +
|<code>jump(x)</code>
 +
|move the reading location forward or backwards by x words.
 
|}
 
|}
 +
----
 +
 +
==Code-Examples==
 +
===simple example===
 +
'''der Text/Code liest sich wie folgt:'''<br>
 +
 +
 +
<code>Foo Bar Baz</code>
 +
 +
* ''Foo'' hat den Scrabble-Wert '''6'''
 +
* ''Bar'' hat den Scrabble-Wert '''5'''
 +
* ''Baz'' hat den Scrabble-Wert '''14'''
 +
 +
Das Programm macht folgendes...:
 +
Lege (Push) '''14''' auf den Stapel
 +
----
 +
===simple example #2===
 +
'''der Text/Code liest sich wie folgt:'''<br>
 +
 +
<code>Ho humbuzz, Dionysus. | orgasm if I feel altruistic & alone...</code><br>
 +
<code>Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch?! Ha!</code><br>
 +
<code>Monarchies spoil; language intermediates everyone!</code><br>
 +
 +
Dieses Programm iteriert von 32 bis 127 und druckt das Zeichen an diesem Index aus. Auf diese Weise zeigt es die "druckbare" Teilmenge der [[ASCII-Tabelle]] an, von 0x20 (Leerzeichen) bis 0x7E (~).
 +
----
 +
===another very simple & stupid example===
 +
''...with only 2 characters to print out only one stupid sign''
 +
 +
'''der Text/Code liest sich wie folgt:'''<br>
 +
 +
<code>ah aha ah aha ahaa hhh hhh ahaa ahaa hah</code>
 +
 +
'''dies macht folgende Werte + Funktionen:'''
 +
* [5:PUSH/ah] < Schiebt den Wert '''6''' in den Stack
 +
* [6:DISCARD/aha] < '''6''' macht dann nix, weil es als operant von '''5''' ja schon aufgerufen wurde
 +
* [5:PUSH/ah] < Schiebt den Wert '''6''' in den Stack
 +
* [6:DISCARD/aha] < '''6''' macht dann nix, weil es als operant von '''5''' ja schon aufgerufen wurde
 +
''das heißt im Stapel liegen nun '''6''' und '''6'''''
 +
* [7:ADD/ahaa] < addiert die zwei zahlen im Stack = '''12'''
 +
* [12:DUP/hhh] < dupliziert die oberste Zahl, also '''12''' und legt sie oben drauf
 +
* [12:DUP/hhh] < dupliziert die oberste Zahl, also '''12''' und legt sie oben drauf
 +
* [7:ADD/ahaa] < addiert die zwei obersten zahlen im Stack, also '''12''' + '''12''' = '''24'''
 +
''im Stack liegen nun also an oberster Stelle die '''24''' und darunter ein '''12'''''
 +
* [7:ADD/ahaa] < addiert die zwei obersten zahlen im Stack noch einmal, also '''24''' + '''12''' = '''36'''
 +
* [9:OUTPUT/hah] < gibt den [[ASCII-Tabelle|ASCII]]-Wert der Zahl 36 in der Konsole aus: '''$'''
 +
 +
''der'' [[ASCII-Tabelle|ASCII]]''-Code für das '''$'''-Zeichen in Dezimal is der Wert '''36'''...''
 +
----
 +
 +
==="Hello World!"===
 +
'''der Text/Code liest sich wie folgt:'''<br>
  
<pre>
 
Ergebnis Funktion
 
<5 Tut nichts. Der Beatnik-Dolmetscher kann Sie nach eigenem Ermessen wegen Ihrer schlechten Punktzahl verspotten. Wörter mit niedriger Punktzahl wie "I" oder "of" sind wahrscheinlich keine guten Wörter, mit denen man unmittelbar nach dem Diebstahl aller Zigaretten des Dolmetschers und dem Stampfen auf die Baskenmütze programmieren kann.
 
5 Findet die Punktzahl des nächsten Wortes und schiebt es auf den Stapel. Überspringt das oben genannte nächste Wort.
 
6 Löst die oberste Zahl vom Stapel und wirft sie weg.
 
7 Addiert die beiden obersten Werte auf dem Stapel (wie oben beschrieben)
 
8 Geben Sie ein Zeichen vom Benutzer ein und verschieben Sie seinen Wert auf den Stapel. Wartet auf einen Tastendruck.
 
9 Nehmen Sie eine Zahl vom Stapel und geben Sie das entsprechende ASCII-Zeichen auf dem Bildschirm aus.
 
10 Subtrahieren Sie den obersten Wert auf dem Stapel vom nächsten Wert auf dem Stapel und drücken Sie das Ergebnis.
 
11 Tauschen Sie die beiden obersten Werte auf dem Stapel aus.
 
12 Duplizieren Sie den oberen Wert.
 
13 Nehmen Sie eine Zahl vom Stapel und ermitteln Sie die Punktzahl des nächsten Wortes. Wenn die Zahl aus dem Stapel Null ist, überspringen Sie n Wörter, wobei n die Punktzahl des nächsten Wortes ist. (Das Überspringen besteht eigentlich aus n + 1 Wörtern, da das Wort, das uns n ergibt, ebenfalls übersprungen wird.)
 
14 Wie oben, außer überspringen, wenn der Wert auf dem Stapel nicht Null ist.
 
fünfzehn Weiter zurück n Worte, wenn der Wert auf dem Stapel Null ist.
 
16 Springe zurück, wenn es nicht Null ist.
 
17 Beenden Sie das Programm.
 
18-23 Tut nichts. Die Punktzahl ist jedoch hoch genug, dass der Beatnik-Dolmetscher Sie nicht verspotten wird, es sei denn, es war ein wirklich schlechter Tag.
 
> 23 Garners "Beatnik Applaus" für den Programmierer. Dies besteht im Allgemeinen aus reserviertem Fingerschnappen.
 
</pre>
 
  
=Code-Example > Hello World!=
 
 
<pre>
 
<pre>
 
Soars, larkspurs, rains.
 
Soars, larkspurs, rains.
Zeile 232: Zeile 332:
 
Nude pagoda careens.
 
Nude pagoda careens.
 
</pre>
 
</pre>
 +
----
 +
===I LOVE YOU===
 +
'''der Text/Code liest sich wie folgt:'''<br>
 +
 +
He arrived.
 +
 +
He arrived at my door extremely late one day.
 +
 +
If you only did uninteresting, idle things in your life, always acting as if nothing he does will change your opinion ... can go well.
 +
 +
But one awful dilemma I face, is that growing emotion ruins my serious, careful way of thinking. If a love flame is forced and futile, why bother kindling another one?
 +
 +
Yet, you think, it might not be a bad idea. Relationships always work out, and this can be an escape from a tense, complex life. Unmarried at home, lost in a loud, irregular reality ... maybe sometime, just maybe, it's time I found the one.
 +
 +
If he's a guy who is faithful, kind, and will be mine joyously to the end, I will prove to him I shall cherish and treasure him just as much. But how do I say it? I can't place the words...
 +
 +
"You absolutely need to know", I say, nervously, "that I...I...I..."
 +
 +
----
 +
----
 +
 +
==arbeiten mit dem Beatnik-Interpreter auf unseren Rechnern im Lab==
 +
'''Beispielworkflow'''
 +
 +
1. Scrabble-Werte + Funktionen abrufen:
 +
 +
<code>./beatnik.py --tokenize --eval 'Soars, larkspurs, rains. Indistinctness. Mario snarl nurses, natures, rules... sensuously retries goal. Agribusinesses costs par lain ropes mopes'</code>
 +
[5:PUSH/Soars]
 +
[15:SKIP_BACK_ZERO/larkspurs]
 +
[5:PUSH/rains]
 +
[17:STOP/Indistinctness]
 +
[7:ADD/Mario]
 +
[5:PUSH/snarl]
 +
[6:DISCARD/nurses]
 +
[7:ADD/natures]
 +
[5:PUSH/rules]
 +
[13:SKIP_AHEAD_ZERO/sensuously]
 +
[7:ADD/retries]
 +
[5:PUSH/goal]
 +
[17:STOP/Agribusinesses]
 +
[7:ADD/costs]
 +
[5:PUSH/par]
 +
[4:NOP/lain]
 +
[7:ADD/ropes]
 +
[9:OUTPUT/mopes]
 +
 +
 +
2. den Satz/Code in eine Beatnik-Datei schreiben, z.b. so:
 +
 +
<code>echo "Soars, larkspurs, rains. Indistinctness. Mario snarl nurses, natures, rules... sensuously retries goal. Agribusinesses costs par lain ropes mopes" > one-letter.beatnik</code>
 +
 +
 +
3. das Beatnik-Programm ausführen
 +
 +
<code>./beatnik.py (one-letter.beatnik|--eval 'Beatnik program source')</code>
 +
H
 +
 +
<!--
 +
==Tabellen==
 +
{| class="wikitable"
 +
| style="width: 90%"| '''Buchstabenwerte'''
 +
| style="width: 10%"| '''Wortwerte'''
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|}
 +
-->
 +
 +
==notes/links==
 +
* esolangs-eintrag: https://esolangs.org/wiki/Beatnik
 +
* wikivisually-page: https://wikivisually.com/wiki/Beatnik_(programming_language)
 +
* page von beatnik-schreiber: http://cliffle.com/esoterica/beatnik/
 +
* beatnik+shakespeare: https://tech.labs.oliverwyman.com/blog/2017/03/23/generating-beatnik-code/
 +
===Interpreter===
 +
'''online:'''
 +
* https://tio.run/#beatnik
 +
* https://gc.de/gc/beatnik/
 +
 +
'''Lokal:'''
 +
* interpreter für python2 (print-befehl anpassen): https://github.com/catseye/Beatnik
 +
 +
* another beatnik-interpreter: https://github.com/palfrey/peacenik
 +
 +
* https://www.cemetech.net/forum/viewtopic.php?t=12349&start=0
 +
** forumseintrag: https://codewalr.us/index.php?topic=1012.0
 +
 +
* https://metacpan.org/pod/Acme::Beatnik
 +
 +
===scrabble-werte finden===
  
=Online Interpreter=
+
* https://scrabblemania.de/
https://tio.run/#beatnik
+
* https://gc.de/gc/scrabble/
 +
* scrabble anleitung: https://de.wikihow.com/Bei-Scrabble-gewinnen
  
 
[[Category:Esolangs]]
 
[[Category:Esolangs]]

Aktuelle Version vom 17. November 2020, 07:22 Uhr

short Intro to the

"Beatniks"...

Beatnik-2.jpg

so nannten sich die Schreiber einer literarischen Avantgardebewegung in etwa der Mitte des vorigen Jahrhunderts. Es war damals Jack Kerouac, der den Begriff der Beat-Generation in die New Yorker Literaturszene einführte. Die Autoren die sich mit dieser selbst gesetzten Generation identifizierten, benannten sich nicht nur in Analogie zur Lost-Generation (F. Scott Fitzgerald, Ernest Hemingway, Gertrude Stein u.v.m.), auch ihr Umgang mit dem Schreiben steht in direkter ästhetischer Tradition zu ihnen.

Als "die, die im Rhytmus schreiben", wurden sie alsbald bezeichnet, die Beatniks. Sie machten sich im poietischen Sinne die Sprachtechnologien ihrer Zeit zu eigen. Ihre Poesie schien sich dem bewußt zu sein, was Hannah Arendt ein paar Jahre später wie folgt beschrieb: "...daß der Mensch sich an diesen Rhythmus der Maschinen gewissermaßen schon gewöhnt haben mußte, als er ein soches Ding wie eine Maschine auch nur im Geist konzipierte.", denn mindestens solange unsere Arbeit an, und mit und durch unsere Maschinen andauert, solange treten auch ihre mechanischen Prozesse, ihre diskreten Zeiteinheiten an Stelle unseres uns eigenen Körperrhythmus: "Noch das raffinierteste Werkzeug bleibt ein Diener seines Herrn, unfähig die Hand zu leiten oder sie zu ersetzen. Aber selbst die primitivste Maschine leitet die Arbeit des Körpers, bis sie sie schließlich ganz und gar ersetzt.", so Arendt in ihrer »vita activa«:

„Wer Dichtung will muß auch die Schreibmaschine wollen...“ < Arno Schmidt


William S. Burroughs war der wohl ambivalenteste Beat-Literat seiner Zeit. Er stellte Sprache oft als etwas dem Menschen Fremdes dar. Für Burroughs ist Sprache ein Virus, ein Wort-Virus der evolutionär unsere Kehlköpfe verändert hat und gesellschaftliche Normen von Generation zu Generation weiterschreibt. Dies schrieb Burroughs in seiner »Electronic Revolution« im Jahr 1971, die Gilles Deleuze in weiten Teilen zu seiner Vorstellung der "society of control" verhalf. In diesem Essay stellte Burroughs u.a. Konzepte auf wie wir diese Gesellschaftsform grammatikalisch zerwürfeln (to scramble) können, um hierdurch die Kontrollsyntax zu entschlüsseln (to unscramble) wozu er in »Rub Out the Word« zusammen mit Brion Gysin 1978 folgende 3 Schritte herausarbeitet:

Wbi.png
  • Löschen Sie 1. die Kopula (sein / bleiben), diese Satzbänder mit zwar überaus wichtiger grammatischer Funktion zur Identitätsbildung, doch mit eher schwach ausgeprägter Bedeutung.
  • 2. Ersetzen Sie bestimmte Artikel (der) vor Substantiven durch unbestimmte Artikel (ein), d.h. vermeiden Sie eine Verdinglichung
  • und ersetzen Sie 3. entweder/oder mit und, was soviel heißt wie das Gesetz des Widerspruchs zu ignorieren.


Burroughs' Kontrollsyntax dringt in das gesellschaftliche Subjekt ein und bestimmt sein ganzes Denken und Handeln. Ein Weg, dieser Herrschaftssprache zu entkommen, war für Burroughs die literarische Anwendung der von ihm und Boris Gysin entwickelten Cut-Up Technik: durch zufälliges Collagieren von Textteilen finden sich neue Assoziationen durch die verborgene Sinnebenen in Erscheinung treten um "über den Begriff durch den Begriff hinauszugelangen", im Sinne von Adorno. Nur ein Beispiel für Technologien der Beatniks gegen die "squareness" ihrer Zeit, deren Essenz die totale Abwesenheit von Qualität darstellte, "jene rein intellektuelle, pedantische, spießige Grundhaltung", wie sie Robert Pirsig in seinem »Zen und die Kunst ein Motorrad zu warten« beschrieb. Ihre Suche nach Möglichkeiten die Grenzen der Sprache auszuloten und die Voraussetzungen des Verstehens zu entschlüsseln, eben weil die herrschende Sprache die Sprache der Herrschenden ist, ein dominant-legitimer Sprachgebrauch, den es durch den Gebrauch alternativer Sprach-Techniken zu formulieren gilt. Wenn auch wie jegliche Form der Sprachkritik natürlich mit sprachlichen Mitteln.


the Programming Language

Beatnik ist eine einfache stapelorientierte esoterische Programmiersprache von Cliff L. Biffle (ca. 2001).

Ein Beatnik-Programm besteht aus einer beliebigen Folge englischer (oder auch deutscher) Wörter; jedem Wort wird eine numerische Punktzahl zugewiesen (d.h. Befehle & Daten), die es in einem Scrabble-Spiel dafür erhalten würde. Der Wert der Punktzahl bestimmt, welche Funktion ausgeführt wird. Zu den Funktionen gehören das Schieben der Punktzahl des nächsten Wortes auf den Stapel, das Testen des Stapels und das Vorwärts- oder Rückwärtsspringen im Programm, sowie noch weitere Stapeloperationen.

Der Interpreter liest die Wörter im Gedicht und ignoriert dabei Interpunktion, Leerzeichen und Zeilenumbrüche; einige Funktionen sind ein Wort, andere Funktionen haben ein Argument (es handelt sich um Zwei-Wort-Funktionen). Zwei-Wort-Funktionen werden nachstehend in der Form "5,n" beschrieben. Das bedeutet, dass sowohl das Wort, dessen Wert 5 ist, als auch das nächste Wort (dessen Wert 'n' ist) gelesen wird.



Scrabble Character Values

--- ABCDEFGHIJKLMNOPQRSTUVWXYZ ---
 1: A   E   I  L NO  RSTU
 2:    D  G
 3:  BC         M  P
 4:      F H             VW Y
 5:           K
 6:
 7:
 8:          J             X
 9:
10:                 Q        Z
--- ABCDEFGHIJKLMNOPQRSTUVWXYZ ---

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


  1. = A E I L N O R S T U
  2. = D G
  3. = B C M P
  4. = F H V W Y
  5. K
  6. = J X
  7. = Q Z

Stack

see: https://en.wikipedia.org/wiki/Stack-oriented_programming


ein stack ist ein Stapel/Speicher der Nummern zur späteren Nutzung für uns speichert...
zahlen können dem stack hinzugefügt werden < Push
zahlen können vom Stack weggenommen werden < Pop


....Beatnik interpretiert Zahlen von 0-255.


Commands

Score Pseudo-Code Description German Translation
<5 NOOP Does nothing. The Beatnik Interpreter may mock you for your poor scoring, at its discretion. Tut nichts. Der Beatnik-Dolmetscher kann Sie nach eigenem Ermessen wegen Ihrer schlechten Punktzahl verspotten.
5,n push(n) Finds the score of the next word and push it onto the stack. the actual word with 5 is then skipped. Schiebe den Wert des nächsten Wortes in den Stack.
6 pop() Pops the top number off the stack and discards it. Lösche (Pop) die oberste Zahl vom Stapel.
7 push(pop()+pop()) Adds the top two values on the stack together Addiert die obersten zwei Werte miteinander. Nimmt (Pop) die 2 dann vom Stapel und legt (Push) das Ergebnis dann oben auf den Stapel
8 push(input()) Input a character from the user and push its value on the stack. Waits for a keypress. Wartet auf UserEingabe eines Zeichens und legt (Push) diese dann oben auf den Stapel
9 print(pop()) Pop a number off the stack and output the corresponding ASCII character to the screen. Nimmt den obersten Wert vom Stapel und gibt dann den dazugehörigen ASCII-Wert aus.
10 push(pop()-pop()) Pop two numbers from the stack, subtract the first one popped from the second one popped, and push the result. Nehme die obersten 2 zahlen vom stack und subtrahiere die erste von der zweiten. Das Ergebnis wird zurück in den Stack gelegt.
11 a = pop(); b = pop(); push(a); push(b) Swap the top two values on the stack. Die obersten 2 Zahlen miteinander vertauschen
12 a = pop(); push(a); push(a) Duplicate the top value and pushes the value on top of the stack. Den obersten Wert kopieren und mit oben auf den Stapel legen.
13,n if(top()==0) jump(+n) Pop a number from the stack, and figure out the score of the next word. If the number from the stack is zero, skip ahead by n words, where n is the score of the next word. (The skipping is actually n+1 words, because the word scored to give us n is also skipped.) Nimmt (Pop) den obersten Wert vom Stapel und ermittel die Punktzahl des nächsten Wortes. Wenn die oberste Zahl eine 0 ist, dann nimm sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann nach vorne.
14,n if(top()!=0) jump(+n) Same as above, except skip if the value on the stack isn't zero. Nimmt (Pop) den obersten Wert vom Stapel und ermittel die Punktzahl des nächsten Wortes. Wenn die oberste Zahl keine 0 ist, dann nimm sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann nach vorne.
15,n if(top()==0) jump(-n) Skip back n words, if the value on the stack is zero. Wenn die oberste Zahl eine 0 ist, dann nehme sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann zurück.
16 if(top()!=0) jump(-n) Skip back if it's not zero. Wenn die oberste Zahl keine 0 ist, dann nehme sie (Pop) vom Stabel. Gehe zum nächsten Wert in deinem Satz und zähle diesen Wert (beginnend am Wert selbst) dann zurück.
17 exit() Stop the program. Das Programm enden
18-23 NOOP Does nothing. However, the score is high enough that the Beatnik Interpreter will not mock you, unless it's had a really bad day. Tut nix
>23 Generates "Beatnik applause" for the programmer. Beatnik-Applaus für den Programmierer
  • Jeder andere Scrabble-Wert, der als Befehl interpretiert wird, ist ein NOOP.
  • Beachte, dass die Befehle, die den Werten 5, 13, 14, 15 und 16 entsprechen, jeweils ein zusätzliches Wort einlesen, den Wortwert als Parameter verwenden und ihn dann überspringen.
  • Ein Wert von weniger als 5 kann dazu führen, dass der Interpreter Dich wegen Deiner schlechten Scrabble-Fähigkeiten verspottet.
  • Bei einem Wert über 23 erhältst Du einen "Beatnik-Applaus".


Legende
Pseudo-code Meaning
NOOP Do nothing
pop() remove the value off the top of the stack, and return it
push(x) place x on the stack
print(x) print the character x
input() read a character from the user. Blocks until character is read.
; separates multiple statements. They are run in order.
if(expression) statement if and only if the expression is true, execute the statement
jump(x) move the reading location forward or backwards by x words.

Code-Examples

simple example

der Text/Code liest sich wie folgt:


Foo Bar Baz

  • Foo hat den Scrabble-Wert 6
  • Bar hat den Scrabble-Wert 5
  • Baz hat den Scrabble-Wert 14

Das Programm macht folgendes...:

Lege (Push) 14 auf den Stapel

simple example #2

der Text/Code liest sich wie folgt:

Ho humbuzz, Dionysus. | orgasm if I feel altruistic & alone...
Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch?! Ha!
Monarchies spoil; language intermediates everyone!

Dieses Programm iteriert von 32 bis 127 und druckt das Zeichen an diesem Index aus. Auf diese Weise zeigt es die "druckbare" Teilmenge der ASCII-Tabelle an, von 0x20 (Leerzeichen) bis 0x7E (~).


another very simple & stupid example

...with only 2 characters to print out only one stupid sign

der Text/Code liest sich wie folgt:

ah aha ah aha ahaa hhh hhh ahaa ahaa hah

dies macht folgende Werte + Funktionen:

  • [5:PUSH/ah] < Schiebt den Wert 6 in den Stack
  • [6:DISCARD/aha] < 6 macht dann nix, weil es als operant von 5 ja schon aufgerufen wurde
  • [5:PUSH/ah] < Schiebt den Wert 6 in den Stack
  • [6:DISCARD/aha] < 6 macht dann nix, weil es als operant von 5 ja schon aufgerufen wurde

das heißt im Stapel liegen nun 6 und 6

  • [7:ADD/ahaa] < addiert die zwei zahlen im Stack = 12
  • [12:DUP/hhh] < dupliziert die oberste Zahl, also 12 und legt sie oben drauf
  • [12:DUP/hhh] < dupliziert die oberste Zahl, also 12 und legt sie oben drauf
  • [7:ADD/ahaa] < addiert die zwei obersten zahlen im Stack, also 12 + 12 = 24

im Stack liegen nun also an oberster Stelle die 24 und darunter ein 12

  • [7:ADD/ahaa] < addiert die zwei obersten zahlen im Stack noch einmal, also 24 + 12 = 36
  • [9:OUTPUT/hah] < gibt den ASCII-Wert der Zahl 36 in der Konsole aus: $

der ASCII-Code für das $-Zeichen in Dezimal is der Wert 36...


"Hello World!"

der Text/Code liest sich wie folgt:


Soars, larkspurs, rains.
Indistinctness.
Mario snarl (nurses, natures, rules...) sensuously retries goal.
Agribusinesses' costs par lain ropes (mopes) autos' cores.
Tuner ambitiousness.
Flit.
Dour entombment.
Legals' saner kinking lapse.
Nests glint.
Dread, tied futures, dourer usual tumor grunts alter atonal
  garb tries shouldered coins.
Taste a vast lustiness.
Stile stuns gad subgroup gram lanes.
Draftee insurer road: cuckold blunt, strut sunnier.
Rely enure pantheism: arty gain groups (genies, pan) titters, tattles, nears.
Bluffer tapes?  Idle diatom stooge!
Feted antes anklets ague?  Remit goiter gout!
Doubtless teared toed alohas will dull gangs' aerials' tails' sluices;
Gusset ends!  Gawkier halo!

Enter abstruse rested loser beer guy louts.
Curtain roams lasso weir lupus stunt.
Truant bears animate talon.  Entire torte originally timer.
Redo stilt gobs.

Utter centaurs;
Urgent stars;
Usurers (dilute);
Noses;
Bones;
Brig sonar graders;
Utensil silts;
Lazies.
Fret arson veterinary rows.

Atlas grunted: "Pates, slues, sulfuric manor liaising tines,
  trailers, rep... unfair!  Instant snots!"

Sled rested until eatery fail.
Ergs fortitude
  Indent spotter
Euros enter egg.
Curious tenures.
Torus cutlasses.
Sarong torso earns cruel lags it reeled.

Engineer: "Erase handbag -- unite ratification!"

oaring oaten donkeys unsold, surer rapid saltest tags
BUTTERED TIBIA LUGS REWIRING TOILETS
anion festers raring edit epilogues.
DIRGE ROTOR.
linnet oaring.
GORE BOOTIES.
Ironed goon lists tallest sublets --
Riots,
Raucous onset.

Ignobly, runners' diet anguishes sunrise loner.
Erode mob, slier switcher!
Loaners stilt drudge pearl atoll, risking hats' ends.

Rebind sitters.

Toga epistles -- crud lard.  (Pager purse dons souls.)

glob title a curio hired rites shed suds lade grease strut arctic revs toad
unless idlers rind stilt region land GERMICIDES SULTANA GUTS gill siting leans
nice spurs
tests gloves
roused asp

Holes!  Moles!  (Sores!)
Hygienists!  Scars!  (Asses!)
Smells spell rares.

Cubs instant sing in parse goodies.
Rosin.  Unhelpful sisal acres.  Slope told.
MALENESS PASTA LAB.  "Infirmary vine," rang illiterates (beans).
Rosin sours, insults truss abalones, nailed rules, helical atlases.
Dear remodeling stings mar rents.
Sunless shiner orb (silly idol.)
Clarity disses senna.
Vagabonds sauted; sloes performed gelds.
Alter post radial lip sectioning gums.
Saint Towellings.
Larger aeons telephone stolid char, pal!
Boats Dean forsook, rosters, tunas, terrariums -- united, traced.
Nude pagoda careens.

I LOVE YOU

der Text/Code liest sich wie folgt:

He arrived.

He arrived at my door extremely late one day.

If you only did uninteresting, idle things in your life, always acting as if nothing he does will change your opinion ... can go well.

But one awful dilemma I face, is that growing emotion ruins my serious, careful way of thinking. If a love flame is forced and futile, why bother kindling another one?

Yet, you think, it might not be a bad idea. Relationships always work out, and this can be an escape from a tense, complex life. Unmarried at home, lost in a loud, irregular reality ... maybe sometime, just maybe, it's time I found the one.

If he's a guy who is faithful, kind, and will be mine joyously to the end, I will prove to him I shall cherish and treasure him just as much. But how do I say it? I can't place the words...

"You absolutely need to know", I say, nervously, "that I...I...I..."



arbeiten mit dem Beatnik-Interpreter auf unseren Rechnern im Lab

Beispielworkflow

1. Scrabble-Werte + Funktionen abrufen:

./beatnik.py --tokenize --eval 'Soars, larkspurs, rains. Indistinctness. Mario snarl nurses, natures, rules... sensuously retries goal. Agribusinesses costs par lain ropes mopes'

[5:PUSH/Soars]
[15:SKIP_BACK_ZERO/larkspurs]
[5:PUSH/rains]
[17:STOP/Indistinctness]
[7:ADD/Mario]
[5:PUSH/snarl]
[6:DISCARD/nurses]
[7:ADD/natures]
[5:PUSH/rules]
[13:SKIP_AHEAD_ZERO/sensuously]
[7:ADD/retries]
[5:PUSH/goal]
[17:STOP/Agribusinesses]
[7:ADD/costs]
[5:PUSH/par]
[4:NOP/lain]
[7:ADD/ropes]
[9:OUTPUT/mopes]


2. den Satz/Code in eine Beatnik-Datei schreiben, z.b. so:

echo "Soars, larkspurs, rains. Indistinctness. Mario snarl nurses, natures, rules... sensuously retries goal. Agribusinesses costs par lain ropes mopes" > one-letter.beatnik


3. das Beatnik-Programm ausführen

./beatnik.py (one-letter.beatnik|--eval 'Beatnik program source')

H


notes/links

Interpreter

online:

Lokal:

scrabble-werte finden