Shakespeare Programming Language è stato creato nel 2001 da due studenti svedesi, Karl Hasselström e Jon Åslund, e combina, come proclamano gli autori ,
l'espressività di BASIC con la facilità d'uso del linguaggio assembly.
Le risposte vanno dall'alto verso il basso. Inoltre, è comune vedermi riferirsi a frammenti precedenti o precedenti.
( link per me stesso: modifica )
factoid:
Il codice di Shakespeare ricorda, come ci si aspetterebbe, un gioco di Shakespeare, in cui le variabili sono personaggi del gioco e il loro valore cambia quando vengono "insultati" o elogiati ".
Lunghezza frammento 1:
I
Il codice di Shakespeare è diviso in Atti, e gli atti sono essi stessi divisi in Scene, per causalità "da saltare a". Definire un atto Act I
significa che sarà il primo pezzo del codice da eseguire, per esempio, ma non solo.
Snippet di lunghezza 2:
as
Utilizzato in un confronto tra due "caratteri".
Snippet di lunghezza 3:
day
Ormai, potresti avere la sensazione che SPL sia molto prolisso. E strano. E non hai ancora visto niente. day
, in SPL, è 1. Vengono considerati tutti i nomi "positivi" e "neutri" 1
, così come tutti quelli "negativi" -1
.
Snippet di lunghezza 4:
rich
Che cosa è rich
? Un aggettivo. In SPL, gli aggettivi fanno moltiplicare per due il valore del nome a cui sono associati. Vedi l'implementazione sullo snippet 14.
Snippet di lunghezza 5:
Act I
Implementazione del primo frammento. A tutti gli atti può essere assegnato un titolo, ad esempio Act I: Hamlet must die!
, poiché tutto ciò che segue il numero romano viene ignorato dal parser.
Snippet di lunghezza 6:
better
Ogni lingua ha condizioni e SPL non fa eccezione. Ad eccezione del fatto che questo è un linguaggio con una sintassi lunga (e l'ho già detto strano?), Le sue dichiarazioni condizionali saranno lunghe. Chiedere a Ofelia Juliet Am I better than you?
è come avere la if (Ophelia > Juliet)
maggior parte delle lingue "normali". E, naturalmente, puoi chiedere il contrario: Am I not better than you?
è l'equivalente di if (Ophelia < Juliet)
. E puoi già indovinare come =
viene tradotto in SPL: as good as
- utilizzo dello snippet di codice 2.
Tuttavia, good/better
non è l'unico modo per fare confronti in questa lingua shakesperiana, puoi usare qualsiasi aggettivo. Lo stesso principio dello snippet 3 si applica anche qui, con aggettivi "positivi" che hanno il valore >
, mentre quelli "negativi" significano <
.
Lunghezza frammento 7:
Juliet:
Questa è l'invocazione di una variabile; dopo questo, le sue istruzioni / dichiarazioni / qualunque cosa seguiranno.
Una limitazione di SPL è che ha un numero limitato di variabili: Romeo, Giulietta, Amleto, Ofelia, MacBeth e così via sono alcuni esempi di "personaggi" che appariranno in un programma shakesperiano.
Lunghezza frammento 8:
[Exeunt]
[Exeunt]
viene posizionato quando tutti i "personaggi" escono dallo "stage". Spero di poter approfondire un po 'più avanti l'interazione tra i personaggi. Generalmente è l'ultima istruzione di qualsiasi programma SPL, sebbene [Exeunt]
non sia specificamente il "carattere" terminale della lingua. Per un altro esempio, vedi lo snippet 27.
Snippet di lunghezza 9:
as bad as
Nove personaggi solo per rappresentare un semplice =
- usando lo snippet 2. Ho già detto che SPL è strano? Vedi lo snippet 30 per esempi. (e sì, c'è più di un modo per produrlo)
Snippet di lunghezza 10:
difference
Un modo elegante di rappresentare -
, una sottrazione. Puoi eseguire operazioni matematiche su SPL, anche se probabilmente avrai bisogno di un'intera giornata per farlo bene.
Factoid
(dato che sono riuscito in qualche modo a raggiungere dieci frammenti di codice, facciamo una pausa e facciamo un altro factoid su SPL)
Se vuoi eseguire il tuo codice shakesperiano in tutto il suo splendore, c'è questo sito - lo sto ancora testando, dal momento che l'ho scoperto nemmeno cinque minuti fa. C'è anche un modo per tradurlo in C usando un traduttore .
Un altro sito per l'esecuzione del codice SPL è questo che funziona traducendo internamente il codice SPL in un altro linguaggio esoterico: Oracle PL / SQL.
Lunghezza frammento 11:
[Exit Romeo]
Sì! Finalmente posso parlare dell'interazione tra i personaggi! Per cambiare il suo valore o interagire con gli altri, un "personaggio" deve essere sul palco - entrare con [Enter Romeo]
. Se un personaggio è indirizzato ma non è presente, c'è un errore di runtime e il programma si arresta. Perché, in SPL, il valore delle variabili è impostato dalla quantità di nomi con cui sono elogiati - o insultati - dagli altri personaggi sul palco. Sento che dovrei fare un esempio per chiarire un po 'di confusione che la mia spiegazione zoppa può creare, ma forse è meglio ritardare qualche frammento.
Lunghezza frammento 12:
Remember me.
SPL è piuttosto "semplice", va bene - ma ha pile! Quando, per esempio, Romeo dice a Juliet di "ricordarlo", in realtà sta dicendo alla sua amata di spingere il valore di Romeo nel suo stack. Interrompere il valore viene fatto con Recall your happy childhood!
, o, o Recall your love for me
, fondamentalmente, qualsiasi frase che inizia con Recall
- il resto è solo una svolta artistica, come lo snippet 22.
Lunghezza 13 frammento
Let us return
Il modo shakesperiano di avere un goto
. Ed è qui che gli Atti e le Scene sono utili. Se Romeo lo dice a Juliet we shall return to Act II
(sì, ancora, ci sono molti modi per scriverlo), il programma passerà a quella parte specifica del codice. È anche visto accanto a dichiarazioni condizionali.
Lunghezza frammento 14
my little pony
Sì, era una serie negli anni '80. Ecco qui 2*1
. Perché? Perché a pony
è un nome (in qualche modo) positivo ed little
è un aggettivo. Quindi, ricordando i frammenti 3 e 4, abbiamo little = "2 *"
e pony = "1"
.
Lunghezza frammento 15
Speak thy mind!
In un programma SPL, vedrai questo (o Speak your mind!
, che è lo stesso) molto . Questo in pratica genera il valore di ciascun "carattere" in cifre, lettere o quant'altro, a seconda del set di caratteri utilizzato dal computer. C'è anche Open your mind.
quello che fa quasi la stessa cosa, anche se emette solo in forma numerica.
Lunghezza 16 frammento
You are nothing!
Quando qualcuno ti dice questo nella vita reale, ti sentirai depresso. Quando Ofelia lo dice ad Amleto nella programmazione shakespeariana, Amleto si sente senza valore. Cosa significa questo? Quello Hamlet = 0
.
Lunghezza frammento 17
Ophelia, a wench.
In una sceneggiatura, prima che inizi la riproduzione effettiva, i personaggi devono essere presentati. Nella maggior parte dei linguaggi di programmazione, anche le variabili devono essere dichiarate prima dell'uso. Visto che SPL è un linguaggio di programmazione che ricorda una sceneggiatura, ecco come dichiarare le sue variabili, affermando quali sono quelle che appaiono durante il programma.
Ma cosa significa "una donna"? Significa che è un nome di tipo di dati specifico (e interessante)? Beh ... odio deluderti, ma non significa nulla: tutto dopo la virgola viene ignorato dal parser, il che significa che puoi mettere lì la dritta più oltraggiosa che ti viene in mente.
Lunghezza 18 frammento
lying sorry coward
-4
per tutte le creature terrene. Perché? A causa 2*2*(-1) = -4
.
Lunghezza 19 frammento
Romeo:
Remember me.
Alla fine!!! Posso finalmente emettere un'istruzione di sintassi completamente corretta (anche se breve)! È così che usi lo snippet 12: prima dichiari chi sta parlando, poi nella riga successiva scrivi il "dialogo". Normalmente, solo due "personaggi" sono sul palco, per evitare di rendere il parser triste e confuso. Quando hai bisogno di un altro "personaggio", ne prendi uno dal palco e lo sostituisci con quello nuovo.
Lunghezza 20 frammento
cube of thy codpiece
Volevo elaborare un po 'di più per questo, ma, a dire la verità, le cose che mi vengono in mente sono ancora troppo brevi per questo frammento. E quindi ti porto questo, che finisce per essere -1
- perché (-1) 3 = -1 (ed codpiece
è un sostantivo "negativo", dato che sono scomodi e tutti). SPL capisce alcune operazioni aritmetiche più elaborati come un po ' elevamento a potenza e radici quadrate.
Factoid (ancora un altro, dal momento che abbiamo raggiunto un altro traguardo)
Il "Hello World Program" di Shakesperian ha 89 righe e più di 2400 caratteri, come mostrato qui .
Lunghezza frammento 21
Listen to your heart.
Nel frammento 15 hai emesso qualcosa; qui, inserisci un numero per il programma. Se vuoi inserire un personaggio, userai Open your mind.
invece. E, inutile dirlo, questo valore verrà memorizzato nel "personaggio" con cui si parla.
Lunghezza frammento 22
Recall your childhood!
Con questo, l'interruzione di un numero intero da uno stack viene eseguita, come spiegato nello snippet 12. Quando, per esempio, Ofelia dice ad Amleto la frase sopra menzionata, fa sì che Amleto prenda un numero intero dal suo stack e assuma quel valore.
Ovviamente, finché la parola recall
inizia la frase, puoi riempire il resto con qualsiasi cosa desideri la tua mente shakesperiana creativa.
Snippet di lunghezza 23
Are you better than me?
Implementazione dello snippet 6. Quando un "personaggio" pone una domanda del genere a un altro, ciò che sta facendo equivale a if (x > y)
linguaggi di programmazione più comuni. Il seguito di queste istruzioni deve essere ritardato fino a quando non avrò più caratteri disponibili.
Lunghezza 24 frammento
[Enter Romeo and Juliet]
Sì, i "caratteri" possono entrare in coppia. Non è necessario che un "personaggio" entri nel palco, seguito da un altro.
Lunghezza frammento 25
remainder of the quotient
25 caratteri solo per scrivere a %
. 25 personaggi per avere il resto di una divisione. E usarlo? Bene, questo è ancora più grande - vedi frammento 75.
Lunghezza 26 frammento
Let us return to scene II.
Eccolo, a goto
in SPL, che funziona come ci si aspetterebbe in un linguaggio di programmazione. Una cosa è: puoi saltare tra le scene nello stesso atto e tra gli atti; ma non puoi saltare tra le scene in diversi atti.
Lunghezza del frammento 27
[Exeunt Ophelia and Hamlet]
Quando più di un "personaggio" lascia il palco, invece di Exit
, e mantenendo la tradizione con la natura teatrale di SPL, viene usata la parola latina "Exeunt". A volte può essere sostituito solo dallo snippet 8.
Lunghezza frammento 28
Scene I: Ophelia's flattery.
Dichiarare una scena. Come puoi già aspettarti se hai affrontato me, l'importante è il Scene I
, il resto è lanugine artistica.
Sono stati realizzati alcuni compilatori (come questo che compila da SPL a C, scritti in Python ) che invece si riferiscono al testo dopo la numerazione dell'Atto / della Scena. Mentre più logico (dopo tutto, durante una commedia, con i personaggi che dicono linee come "torniamo all'Atto I" può essere considerato sciocco), mi sto attenendo al modo originale.
Lunghezza frammento 29
You pretty little warm thing!
Sì, un'altra costante (dal momento che abbiamo bisogno di più personaggi per eseguire operazioni aritmetiche). Questo è uguale a 8
, perché 2*2*2*1 = 8
.
Lunghezza 30 frammento
You are as cowardly as Hamlet!
Dire questo, ad esempio, a Romeo, significa che Romeo = Hamlet
. Come lo snippet 9.
Factoid (sì, un altro punto di riferimento raggiunto!)
Questo linguaggio è stato creato per un incarico in un corso di analisi della sintassi, pertanto gli autori non hanno creato alcun compilatore SPL. Inoltre: sembra che gli autori di SPL abbiano reciso i loro legami con la loro creazione, dal momento che nulla sembra essere stato modificato nella lingua dal 2001 ...
Lunghezza frammento 31
Am I as horrid as a flirt-gill?
Sì, lo so, è un po 'ripetendo lo snippet 23, sebbene, qui, stiamo confrontando il "personaggio" che parla con un "flirt-gill" (di, se preferisci, if (Ophelia == -1)
). La cosa è...
Lunghezza 32 frammento
If so, let us return to scene I.
... ora posso presentare then
SPL, il condizionale jump-to e il modo shakesperiano di implementare i loop. Ad esempio, puoi fare in modo che Romeo assuma il valore 0
, aumenti il suo valore mentre fa qualche altra attività e si ferma quando raggiunge i 10, procedendo successivamente con il programma.
Lunghezza frammento 33
If not, let us return to scene I.
Solo un promemoria che, invece, possiamo invece procedere ad un'altra scena se la condizione per cui abbiamo testato è falsa .
Lunghezza 34 frammento
Open your mind! Remember yourself.
Due istruzioni di fila, yippie! Il primo legge un personaggio, il secondo lo inserisce nello stack di memoria dell'altro personaggio.
Lunghezza 35 frammento
Act I: Death!
Scene I: Oh, shit.
Il modo corretto di dichiarare un atto e una scena. Aggiungi poltiglia artistica con gusto.
Lunghezza 36 frammento
Thou art as sweet as a summer's day!
Un altro modo di dire che il "personaggio" con cui viene parlato riceverà il valore 1
, perché le giornate estive sono piacevoli e piacevoli.
Lunghezza 37 frammento
Art thou more cunning than the Ghost?
Ophelia questa domanda ai mezzi Hamlet, traducendo questo per un linguaggio di programmazione meno leggibile, if (Hamlet > the Ghost)
. È di nuovo lo snippet 23, sì - ma ti mostra che non è necessario chiedere ai "personaggi" se sono migliori l'uno dell'altro: anche qualsiasi altra domanda funzionerà.
Lunghezza 38 frammento
[Enter the Ghost, Romeo and the Ghost]
Sì, sto chiamando un "personaggio" due volte, perché volevo che il programma mi desse un errore. Chiamare un "personaggio" che è già sul palco, o dire a uno che è assente di uscire, causerà un grande dolore al parser / compilatore.
Lunghezza 39 frammento
the sum of a fat lazy pig and yourself!
L'istruzione completa ha un aspetto migliore di questo, te lo darò, ma ... ecco la nostra prima operazione aritmetica! Cosa significa tutto, in realtà? Bene, pig
è un animale sporco (anche se gustoso), quindi equivale a -1
, ha due aggettivi, che significa fat lazy pig
uguale 2*2*(-1) = -4
. Ma che dire yourself
? È un pronome riflessivo, non un nome né un aggettivo. Bene, ricorda che SPL si basa su dialoghi tra "personaggi"; quindi, si yourself
riferisce all'altro "personaggio" sul palco. Quindi, arriviamo alla fine e scopriamo che "la somma di un grasso maiale pigro e te stesso" è, in realtà -4 + x
,.
Lunghezza 40 frammento
the sum of a squirrel and a white horse.
Sì, un'altra somma, ma questa è più semplice dello snippet 39. Questo è semplicemente 1 + 2
- 3
, se la mia matematica è corretta.
Factoid (ancora con me dopo questi quaranta frammenti di lanugine artistica? Ti meriti un premio.)
SPL, nella sua versione 1.2.1, può essere scaricato qui .
Lunghezza del frammento 41
Juliet:
Speak thy mind!
[Exit Romeo]
A volte, i "personaggi" vengono chiamati sul palco solo per cambiare il loro valore - che, in una vera commedia, sarebbe qualcosa di piuttosto bizzarro. Comunque, qui, Juliet fa stampare alla sua amata Romeo il suo valore memorizzato, dopo di che esce dal palco.
Lunghezza 42 frammento
Speak YOUR mind! You are as bad as Hamlet!
Ancora una volta due istruzioni in una riga (possiamo avere più, ma la lunghezza del frammento non lo consente ancora); qui abbiamo un "personaggio" che dice a un altro di produrre il suo valore e assumere qualunque valore abbia Amleto. Confondere? Mayhap.
Lunghezza 43 frammento
Am I as horrid as a half-witted flirt-gill?
Giulietta che chiede questo non significa che abbia poca stima (anche se potrebbe accadere nella vita reale); è semplicemente un altro if
, come i frammenti 23 e 37. Oh, quasi dimenticavo: questo si traduce in if (Juliet == -2)
.
Lunghezza 44 frammento
You are as evil as the square root of Romeo!
Sì, le radici quadrate sono cattive, non lo sapevi? Ad ogni modo, questa istruzione è abbastanza semplice da capire cosa fa: attribuisce il "carattere" che viene pronunciato al valore della radice quadrata del valore memorizzato in Romeo.
Lunghezza frammento 45
Hamlet:
Art thou more cunning than the Ghost?
Snippet 37 correttamente scritto con il personaggio che sta parlando la linea.
Lunghezza 46 frammento
the product of a rural town and my rich purse.
Va bene ... comunque, SPL potrebbe essere l'unica lingua al mondo che ti consente di moltiplicare le città con le borse. Ciò significa (2*1)*(2*1)
che, se non sbaglio, è uguale a 4
.
Lunghezza frammento 47
Romeo:
Speak your mind.
Juliet:
Speak YOUR mind!
Ti do questo: potrebbe essere uno dei dialoghi più bizzarri della storia. Ma è quello che ottieni quando scegli una strana lingua da mostrare. Romeo e Giulietta si dicono l'un l'altro, in breve, di esprimere i loro valori.
Lunghezza frammento 48
You lying fatherless useless half-witted coward!
Traducendo direttamente, 2*2*2*2*(-1)
. -16
, giusto?
Lunghezza frammento 49
Scene V: Closure.
Hamlet:
Speak your mind!
[Exeunt]
Un esempio di come terminare un programma in SPL. Puoi dichiarare una scena appositamente per essa (anche se non è richiesta), quindi Amleto chiede a un altro "personaggio" di emetterne il valore, quindi tutti escono dal palco. E sì, è necessario che tutti scendano dal palco.
Lunghezza frammento 50
Othello, a young squire.
Lady Macbeth, an old fart.
Più presentazione "carattere", prima delle istruzioni adeguate. Come sempre, l'unica cosa che conta per il compilatore è Othello
e Lady Macbeth
, quindi il resto della linea è in palio ...
Ancora una cosa: i "personaggi" non devono essere collegati tra loro per apparire in un programma SPL - quindi puoi avere Romeo, Otello e Amleto nella stessa commedia.
Factoid (mezzo secolo di queste cose? Accidenti! Dopo questo penso che odierò William Shakespeare ...)
Il traduttore da SPL a C, menzionato qualche tempo fa e sviluppato dai creatori di SPL, era basato su Flex e Bison .
Snippet di lunghezza 51
Othello:
Recall your great dreams. Speak your mind!
(Così stufo di Romeo, Giulietta e Amleto ... portiamo Otello, per cambiare!)
Recall
, come puoi immaginare, è la chiave qui. Il "personaggio" che Otello sta affrontando prenderà un valore dal suo stack, assumerà quel valore e, successivamente, lo produrrà.
Lunghezza frammento 52
Thou art as pretty as the sum of thyself and my dog!
Un'altra somma. Sbadiglio. Supponendo che questo sia indirizzato ad Amleto, significa che Hamlet = Hamlet + 1
. Or Hamlet += 1
. Or Hamlet++
.
Snippet di lunghezza 53
Romeo:
You are as vile as the sum of me and yourself!
Ah, sì, qualcosa che ho dimenticato di menzionare prima: i "personaggi" parlanti possono menzionarsi sulla propria linea.
Lunghezza 54 frammento
Juliet:
Is the sum of Romeo and me as good as nothing?
Un altro esempio dello snippet precedente, incluso in una condizione. Quindi quello che abbiamo qui è if (Romeo + Juliet == 0)
.
Lunghezza frammento 55
Juliet:
You are as lovely as the sweetest reddest rose.
Quindi, qui, Juliet sta lodando il "personaggio" con cui sta parlando (supponiamo che sia Romeo, per l'amor di Shakespeare), dichiarando che lui / lei è 4. Sì, un'altra assegnazione di valori.
Lunghezza 56 frammento
Othello:
You lying fatherless useless half-witted coward!
Snippet 48 correttamente eseguito, con un "personaggio". Se sei troppo pigro per scorrere verso l'alto (come sarei io), questo significa che quello che viene insultato riceve il valore -16.
Lunghezza 57 frammento
Romeo:
If not, let us return to Act I. Recall thy riches!
Ho già spiegato come funzionano le condizioni su SPL su base generale; tuttavia, è necessaria un'analisi più approfondita. Non abbiamo else
qui: per esempio, in questo esempio, se la condizione non fosse riuscita, il programma tornerebbe all'Atto I; ma se fosse vero, continuerebbe con l'istruzione successiva, che è un Recall
- un pop dallo stack, cioè.
Lunghezza frammento 58
Romeo:
You are as disgusting as the square root of Juliet!
Afferrare lo snippet 44 e presentare come devono essere presentate le istruzioni. Se questo fosse un dialogo tra Romeo e Otello, allora potremmo tradurlo in Java come Othello = Math.sqrt(Juliet)
.
Lunghezza 59 frammento
Othello:
You are as vile as the sum of yourself and a toad!
OK, se Otello stesse parlando con Romeo, ciò equivarrebbe a Romeo+(-1)
; Romeo--
, in breve. Abbastanza semplice, vero? Questo è SPL per te.
Lunghezza 60 frammento
Is the quotient between the Ghost and me as good as nothing?
In breve, if (The Ghost/Hamlet == 0)
supponendo che l'io appartenga ad Amleto.
Lunghezza frammento 61
Thou art as handsome as the sum of yourself and my chihuahua!
Dopo aver rimosso gli strati e gli strati di parole e insulti, noti che SPL è praticamente una cosa di base, senza funzioni e cose interessanti. Quindi abbiamo un sacco di funzioni aritmetiche sul corpo del programma. Quindi, se questo fosse indirizzato a Giulietta, sarebbe equivalente a Juliet++
.
Lunghezza frammento 62
twice the difference between a mistletoe and a oozing blister!
Sì, sì, più operazioni aritmetiche. All'incirca, questi 62 byte di SPL possono essere tradotti in 2*(1-2*(-1))
. Sarebbe un linguaggio da golf davvero fantastico, vero? Giusto.
Lunghezza frammento 63
You lying stupid fatherless rotten stinking half-witted coward!
Snippet 48 emesso -16, questo è pari a -64: 2*2*2*2*2*2*(-1)
.
Lunghezza 64 frammento
your coward sorry little stuffed misused dusty oozing rotten sky
Da quello che ho capito di SPL, questo è perfettamente legittimo. Hai un sacco di aggettivi offensivi che procede un nome "positivo". Dal momento che gli aggettivi non hanno alcuna distinzione speciale se sono negativi o meno (il loro unico valore è moltiplicare il numero alla loro destra per due), possiamo avere frasi completamente stupide come questa. Ciò equivale a 256. Perché 2*2*2*2*2*2*2*2*1=256
.
Lunghezza frammento 65
You are nothing! You are as vile as the sum of thyself and a pig.
Hmm, così tanto odio, vero? Quindi, ciò che abbiamo qui è equivalente a y=0; y=y+(-1);
Probabilmente avrebbe potuto essere "giocato a golf" You are a pig!
, ma eh.
Lunghezza frammento 66
You are as beautiful as the difference between Juliet and thyself.
Quindi, sottrarre Juliet da te stesso, eh? Questo è abbastanza semplice da decodificare: Romeo=Juliet-Romeo;
supponendo che si tratti di Romeo.
Lunghezza 67 frammento
Juliet:
Am I better than you?
Romeo:
If so, let us proceed to Act V.
Come funzionano la maggior parte delle condizioni su SPL. Provi l'espressione e, se è vero (o no: vedi snippet 33), salti a un'altra parte del programma; altrimenti, passerai alla frase successiva.
Lunghezza frammento 68
The Ghost:
You are as small as the sum of yourself and a stone wall!
Sì, sì, sto diventando un po 'monotono. Ma SPL è così. Come ho affermato un po 'prima, le sue espressioni sono un misto di operazioni aritmetiche. Quindi, questo è ancora un altro incremento - poiché stone wall
è un "nome" neutrale.
Snippet di lunghezza 69
Thou art as disgusting as the difference between Othello and thyself!
Invece di una somma, abbiamo la sottrazione tra due personaggi, Otello e chiunque si parli.
Lunghezza frammento 70
You are as handsome as the sum of Romeo and his black lazy squirrel!
Torniamo alle aggiunte, sì - chiamami formulaico, eh. Lo traduciamo in Romeo + 2*2*1
.
Lunghezza frammento 71
Scene I: Dialogues.
[Enter Juliet]
Othello:
Speak your mind!
[Exit Juliet]
Una scena può essere piccola come questa. Juliet
entra sul palco, Otello le dice di produrre il suo valore memorizzato, quindi scende di nuovo dal palco.
Lunghezza 72 frammento
twice the difference between a mistletoe and an oozing infected blister!
Un'altra operazione aritmetica - perché SPL è pieno di loro. Possiamo tradurre questo in 2*(1-2*2*(-1))
.
Snippet di lunghezza 73
You are nothing! Remember me. Recall your unhappy story! Speak your mind!
Quattro istruzioni di fila ?! Sono abbastanza orgoglioso di me stesso, in realtà. Comunque, supponiamo che questo sia un dialogo tra Romeo e Giulietta (e sta parlando): questo significa che il valore di Giulietta inizia da 0; quindi, Juliet spingerà il valore di Romeo nella sua memoria, lo aprirà e lo produrrà nella sua forma inserita. Semplice vero?
Lunghezza frammento 74
You are as sweet as the sum of the sum of Romeo and his horse and his cat!
Sì, sì, esempio noioso, lo so. Ma questo è X = (Romeo + 1) + 1
.
Lunghezza frammento 75
Is the remainder of the quotient between Othello and me as good as nothing?
Bene, questo è piuttosto semplice. Se le tue abilità di decodifica non funzionano correttamente, si traduce in if (Othello % X == 0)
.
Lunghezza 76 frammento
Thou art as rich as the sum of thyself and my dog! Let us return to scene I.
Il salto dallo snippet 26 con un'espressione prima di esso. A goto
su SPL non si trova sempre vicino a una condizione, può essere così - e, naturalmente, questo tipo di goto
sarà sempre trovato alla fine di un atto o di una scena, poiché le istruzioni dopo non verranno mai compilate / eseguite. La prima istruzione è piuttosto semplice: x=x+1
.
Lunghezza 77 frammento
[Exit Hamlet]
[Enter Romeo]
Juliet:
Open your heart.
[Exit Juliet]
[Enter Hamlet]
Quindi, abbiamo Juliet e Amleto sul palco; ma abbiamo bisogno del valore di Romeo. Quindi, al fine di risparmiare il compilatore da un brutto mal di testa, in primo luogo rimuoviamo Amleto dal palcoscenico (anche se potrebbe essere stato Juliet a salire), diciamo a Romeo di salire sul palco, Juliet gli dà un'istruzione per produrre un numero (vedi la spiegazione dello snippet 21), poi Romeo esce dal palco e Amleto ritorna. Abbastanza semplice e diretto.
Lunghezza frammento 78
The Ghost:
Speak thy mind.
Lady Macbeth:
Listen to thy heart! Remember thyself.
Quindi, The Ghost (il defunto padre di Amleto) sta dicendo a Lady Macbeth di produrre il suo valore, mentre ordina a The Ghost di leggere un numero e inserirlo nel suo stack.
Translate[Scale[Rectangle, 80], {0, 0, 100}]
, la grande parolaRectangle
sembrerebbe fluttuare davanti al tuo monitor?