Shakespeare Programming Language - Shakespeare Programming Language
Shakespeare Programming Language ( SPL ) je esoterický programovací jazyk navržený Jon Åslund a Karl Hasselström. Stejně jako programovací jazyk Chef je navržen tak, aby programy vypadaly jako něco jiného než programy - v tomto případě hraje Shakespearean .
Charakter seznam na začátku programu deklaruje několik stohů , přirozeně s názvy jako „Romeo“ a „Julie“. Tyto znaky vstoupit do dialogu mezi sebou navzájem, ve kterém manipulovat navzájem vrchní hodnoty, tlačit a pop sebe a udělat I / O . Postavy si také mohou navzájem klást otázky, které se chovají jako podmíněné výroky . Celkově je programovací model velmi podobný montážnímu jazyku, ale je mnohem podrobnější.
Programování v Shakespeare
Titul
První řádek v Shakespearově programu se nazývá 'název'. Kompilátor považuje cokoli od prvního řádku po první období za komentář.
Dramatis Personae
Toto je část, kde jsou deklarovány proměnné. Každá proměnná může obsahovat celočíselnou hodnotu se znaménkem a má následující formu:
Name, Description
Kde Nameje název proměnné a Descriptionkompilátor jej ignoruje. Kompilátor rozpozná pouze ta jména, která odpovídají skutečným shakespearovským znakům.
Akty a scény
Kus kódu v Shakespeare je rozdělen do Actskteré obsahují Scenes, ve kterém znaky (proměnné) působí. Každý Acta Sceneje očíslován římskou číslicí a slouží jako GOTOštítek. Jakýkoli kód za dvojtečkou je považován za komentář. Jsou psány ve formě:
Act I: Hamlet's insults and flattery. Scene I: The insulting of Romeo.
Vstup, výstup a útěk
Jednotlivé řádky kódu mají obecně formu dialogu, který mluví jedna postava s druhou; takto se přiřazuje, mění nebo vytváří hodnota proměnné (znaku, kterým se mluví). Postavu lze oslovit pouze jako „ty“ nebo „ty“. Kdykoli se mluví, tak obvykle musí být „na jevišti“ přesně dvě postavy: jedna k mluvení a druhá k mluvení. K volání proměnné do fáze Enterse používá příkaz se seznamem jednoho nebo více znaků. ExitPříkaz říká přesně jeden znak uvedena opustit jeviště. Exeuntvolá více než jeden znak k opuštění, nebo v případě, že nejsou uvedeny žádné znaky, všechny znaky opustí jeviště. Používá se následující formát:
[Enter Juliet] [Enter Romeo and Juliet] [Exit Romeo] [Exeunt Romeo and Juliet] [Exeunt]
Čáry
Řádky jsou reprezentovány jako dialog mluvený postavou a skládají se alespoň z jedné věty. Každá věta může proměnné přiřadit novou hodnotu, směrovat proměnnou k výstupu její hodnoty nebo ji nasměrovat k přijetí vstupu. Řádky mohou také manipulovat se zásobníky nebo fungovat jako příkazy if/then nebo goto. Řádek začíná jménem postavy a dvojtečkou. Vzhledem k tomu, že tato postava je mluvčím, druhá postava na jevišti je proměnná, která je oslovována „ty“ nebo „ty“.
Konstanty a přiřazení hodnot
Konstanty jsou reprezentovány kombinacemi podstatných jmen a přídavných jmen; jazyk rozpoznává konečný seznam každého a oba seznamy jsou rozděleny na ty, které mají pozitivní, negativní nebo neutrální tón, jak je vnímají Åslund a Hasselström. Pozitivní a neutrální podstatná jména mají hodnotu 1 a záporná podstatná jména mají hodnotu -1. Jakékoli adjektivum znásobuje podstatné jméno o 2 a přídavná jména lze skládat. Analyzátor ignoruje přivlastňovací zájmena, zatímco slova týkající se základní aritmetiky jsou považována za operace, jako například „součet“, „kvocient“ a „krychle“. Věta, která přiřazuje hodnotu znaku, začíná na „Ty“ nebo „Ty“, může volitelně pokračovat „jsou jako [libovolné přídavné jméno] jako“ a poté uvádí matematický vzorec v podstatných jménech, přídavných jménech, proměnných a operacích pro nová hodnota. Následují příklady takovýchto řádků:
Hamlet: You lying stupid fatherless big smelly half-witted coward! Juliet: You are as villainous as the square root of Romeo!
Matematické vzorce mohou také použít jména jiných postav (i když tyto znaky nejsou na jevišti) k využití aktuální hodnoty této postavy ve výpočtu nebo „sebe“ nebo „sebe“ pro postavu, se kterou se mluví.
Vstup a výstup
Řádky mohou také volat proměnnou pro výstup nebo příjem vstupu. „Open your heart“ vydá číselnou hodnotu proměnné, zatímco „Speak your mind“ zobrazí odpovídající znak ASCII. „Naslouchejte svému srdci“ nebo „Otevřete svou mysl“ způsobí, že proměnná obdrží vstup od uživatele; první pro číslo a druhý pro postavu.
Podmíněné prohlášení a fotografie
Příkaz if/then je formulován jako otázka položená postavou. Slova „jako [libovolné přídavné jméno] jako“ představují test rovnosti, zatímco „lepší“ a „horší“ odpovídají větším než a menším než. Následující řádek, začínající „pokud ano“ nebo „pokud ne“, určuje, co se stane v reakci na pravdivost nebo nepravdu původního stavu. Okamžité prohlášení začíná slovy „Pojďme“, „Musíme“ nebo „Musíme“, pokračuje „návratem“ nebo „pokračováním“ a poté vydá akt nebo scénu. Scéna bude analyzována jako scéna v aktuálním aktu; goto prohlášení nemůže volat scénu v jiném aktu. Podmíněný příkaz k volání goto by vypadal takto:
Juliet: Am I better than you? Hamlet: If so, let us proceed to scene III.
Tlačení a praskání hromádek
Každá proměnná je hromádka . Proměnná bude mít do zásobníku vloženo celé číslo, pokud řádek řekne znaku „zapamatovat si“ příslušnou hodnotu, například „Zapamatovat si mě“ nebo „Zapamatovat si sebe“. Nejvyšší hodnota v zásobníku je vyskakována (tj. Proměnná předpokládá tuto hodnotu), pokud je znaku řečeno, aby si cokoli „vybavilo“; veškerý text za tímto slovem je považován za komentář.
Příklad kódu
Standardní „Hello, World!“ program :
Do Not Adieu, a play in two acts.
Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.
Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward!
You are as stupid as the difference between a handsome rich brave
hero and thyself! Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!
[Exit Romeo]
Scene II: The praising of Juliet.
[Enter Juliet]
Hamlet:
Thou art as sweet as the sum of the sum of Romeo and his horse and his
black cat! Speak thy mind!
[Exit Juliet]
Scene III: The praising of Ophelia.
[Enter Ophelia]
Hamlet:
Thou art as beautiful as the difference between Romeo and the square
of a huge green peaceful tree. Speak thy mind!
Thou art as lovely as the product of a large rural town and my amazing
bottomless embroidered purse. Speak thy mind!
Thou art as loving as the product of the bluest clearest sweetest sky
and the sum of a squirrel and a white horse. Thou art as beautiful as
the difference between Juliet and thyself. Speak thy mind!
[Exeunt Ophelia and Hamlet]
Act II: Behind Hamlet's back.
Scene I: Romeo and Juliet's conversation.
[Enter Romeo and Juliet]
Romeo:
Speak your mind. You are as worried as the sum of yourself and the
difference between my small smooth hamster and my nose. Speak your
mind!
Juliet:
Speak YOUR mind! You are as bad as Hamlet! You are as small as the
difference between the square of the difference between my little pony
and your big hairy hound and the cube of your sorry little
codpiece. Speak your mind!
[Exit Romeo]
Scene II: Juliet and Ophelia's conversation.
[Enter Ophelia]
Juliet:
Thou art as good as the quotient between Romeo and the sum of a small
furry animal and a leech. Speak your mind!
Ophelia:
Thou art as disgusting as the quotient between Romeo and twice the
difference between a mistletoe and an oozing infected blister! Speak
your mind!
[Exeunt]
Viz také
- Programování v přirozeném jazyce
- Esoterický programovací jazyk
- Informovat 7
- Časová osa programovacích jazyků
Reference
Vložené odkazy
Obecné reference
- Herrick, Chloe (27. června 2011). "AZ programovacích jazyků: Shakespeare" . Počítačový svět . Citováno 10. listopadu 2018 .
- Byrne, Michael (26. září 2015). „Poznejte svůj jazyk: Kódování dřiny a potíže se Shakespearem“ . Základní deska . Citováno 10. listopadu 2018 .
- Lang, Mirco; Augsten, Stephan (12. července 2017). „Esoterické programování, Teil 2: Shakespeare Programming Language“ . dev-insider.de (v němčině) . Citováno 10. listopadu 2018 .
- Nelson, Andy (2. března 2014). „Programovací jazyk Shakespeara“ . Anglické divadlo a literatura v Londýně . Citováno 10. listopadu 2018 .
- Kühnast, Charly (prosinec 2010). „Aus dem Alltag eines Sysadmin: Shakespeare Programming Language“ . Linux-Magazin (v němčině) . Citováno 10. listopadu 2018 .
- Vee, Annette (2017). Kódovací gramotnost: Jak počítačové programování mění psaní . Cambridge, MA: MIT Press . s. 124–125. ISBN 9780262036245.
- „StackHack - Shakespeare Programming Language - Datorföreningen Stacken“ . www.stacken.kth.se (ve švédštině) . Citováno 10. listopadu 2018 .