Pređi na sadržaj

Korisnik:Markob1999/pesak

S Vikipedije, slobodne enciklopedije

Programski jezik Šekspir je ezoterični programski jezik koji je dizajniran od strane Džona Aslunda i Karla Haselstorma.[1] Baš kao i programski jezik Šef, on je dizajniran da napravi programe da postanu nešto više od drugih programa; u ovom slučaju, Šekspirova igra. Lista karaktera na početku programa deklariše stek brojeva, prirodno nazvanim "Romeo" i "Julija". Ti karakteri ulaze u dijalog sami sa sobom pri čemu manipulišu međusobnim najvišim vrednostima, guraju i iskaču jedni druge, i rade ulaz/izlaz. Karakteri takođe mogu da postavljaju pitanja jedni drugima koja se ponašaju kao uslovne izjave. Okvirno, model programiranja je najsličniji asembleru ali sa malo više reči u jeziku.

Shakespeare Programming Language
Shakespeare.jpg
Vilijam Šekspir
Dizajner(i)Džon Ašlund i Karl Haselstorm
Veb-sajtshakespearelang.sourceforge.net/report/shakespeare/


Programiranje u Šekspiru[uredi | uredi izvor]

Naslov (Title)[uredi | uredi izvor]

Prva linija koda u Šekspiru nosi ime „naslov”("title"). Kompajler prevodi sve od prve linije koda do prve tačke za komentar.

Dramatična persona[uredi | uredi izvor]

Ovo je sekcija u kojoj se deklarišu promenljive. Svaka promenljiva može da sadrži označenu celu vrednost i to izgleda ovako:

Име(Name), Опис(Description)


Gde je Име (Name) ime promenljive , a Опис (Description) je ignorisan od strane kompajlera. Kompajler će prepoznati samo imena koja odgovaraju pravim Šekspirovim karakterima.

Uloge i scene[uredi | uredi izvor]

Deo koda u Šekspiru je podeljen na Улоге (Acts) koje odgovaraju Сценама (Scenes) u kojima se karakteri (promenljive) međusobno odnose. Svaka Улогa (Acts) i Сцена (Scene) je numerisana sa Romeovim brojem i služi kao opcija Иди до (GO TO). Svaki kod posle dve tačke sadrži komentar. Oni su napisani u sledećoj formi:


Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.
Улога I: Хамлет вређа и ласка.
Сцена I: Вређање од стране Ромеа.

Ulaz, izlaz i odlazak[uredi | uredi izvor]

Individualne linije koda uzimaju oblik dela dijaloga izgovoren od jednog do drugog karaktera,a ovo je način na koji je vrednost promenljive dodeljena, promenjena ili prosleđena na izlaz. Karakter može biti adresiran samo kao „ti(you)”. Prema tome, moraju biti tačno dva karaktera „na sceni” svaki put kada linije koda komuniciraju; jedna promenljiva priča, a druga sluša.[1] Za pozivanje promenljive na scenu, komanda Улаз(Enter) je korišćena sa listom od jednog ili više karaktera. Komanda Излаз (Exit) govori da tačno jedan karakter napusti scenu. Одлазак (Exeunt)poziva više od jednog karaktera da napusti ili u slučaju da nema izlistanih karaktera, da svi karakteri napuste scenu. Koristi se sledeći oblik:

[Enter Juliet]
[Enter Romeo and Juliet]
[Exit Romeo]
[Exeunt Romeo and Juliet]
[Exeunt]
[Улаз Јулија]
[Улаз Ромео и Јулија]
[Улаз Ромео]
[Одлазак Ромео и Јулија]
[Одлазак]

Linije[uredi | uredi izvor]

Linije su reprezentovane kao dijalog između dva karaktera i sadrži bar jednu rečenicu. Svaka rečenica može da dodeljuje novu vrednost promenljivoj, da naredi promenljivoj da na izlazu prikaže svoju vrednost ili da joj naredi da primi novu vrednost. Linije takođe mogu da manipulišu stekom ili da glume kao „ako/onda” (if/then) ili kao „idi na” (go to) naredbe. Linija počinje imenom karaktera, ili dvotačkom . Pošto je ovaj karakter govornik, drugi karakter na sceni je promenljiva koja je adresirana kao „ti”(you).

Konstante i dodeljivanje vrednosti[uredi | uredi izvor]

Konstante su reprezentovane kombinacijom imenica i prideva; jezik prepoznaje konačnu listu od svake vrste, i obe liste su podeljene na one koje imaju pozitivan, negativan ili neutralan ton, prepoznat od strane Aslunda i Haselstorma. Pozitivne i neutralne imenice imaju vrednost 1, a negativne imenice imaju vrednost -1. Bilo koji pridev množi imenicu 2 puta i pridevi mogu biti ujedinjeni.[1] Prisvojne zamenice su ignorisane od strane parsera, dok se reči koje se odnose na osnovnu aritmetiku koja je prepoznata kao operator, kao „suma”(sum), „količnik”(quotient) i „kub”(cube). Rečenica koja pokazuje na vrednost karaktera koja počinje sa „ti”(you), mogu da se nastave sa „kao i [bilo koji pridev]”(are as [any adjective] as), i onda daje matematičku formulu u imenicama, pridevima, promenljivima i operacijama za nove vrednosti. Primer je dat u prilogu:[1]

Hamlet: You lying stupid fatherless big smelly half-witted coward!
Juliet: You are as villainous as the square root of Romeo!

Ulaz i izlaz[uredi | uredi izvor]

Linije takođe mogu da zovu promenljivu da ode na izlaz programa ili da joj narede da dobije novi unos. "Otvori svoje srce(Open your heart)" izbacuje na izlaz numeričku vrednost promenljive, dok "Otvori svoj um(Speak your mind)" izbacuje na izlaz odgovarajući ASCII karakter. "Slušaj svoje srce(Listen your heart)" ili "Otvori svoj um(Open your mind)" uzrokuje da promenljiva dobije novi unos od strane korisnika, prvobitni za broj i slovo za karakter.

Uslovne izjave i gotos[uredi | uredi izvor]

IF THEN izjava se označava kao pitanje postavljeno od karaktera. Reč "AS [ANY ADJECTIVE] AS " reprezentuje test za jednakost, dok "BETTER" i "WORSE" odgovara komandama veće od ili manje od. Sledeća linija, koja počinje sa "IF SO" ili "IF NOT", određuje šta se dešava u odgovoru, da li je tačan ili pogrešan odgovor u odnosu na originalno stanje. "GO TO" izjava počinje sa "LET US", "WE SHALL" ili "WE MUST", nastavlja se sa "RETURN TO" ili "PROCEED TO", i daje joj ulogu ili scenu. Scena bi bila parsirana kao ta scena u trenutnoj ulozi; GOTO izjava ne može da nazove scenu iz neke druge uloge. Uslovna izjava da bi se pozvala naredba GOTO izgleda ovako:

Juliet:

Am I better than you?

Hamlet:

If so, let us proceed to scene III.

Guranje i iskakanje stekova[uredi | uredi izvor]

Svaka promenljiva je apstraktni tip podatka. Promenljiva će imati intidžer koji je dodeljen njenom tipu podatka ako linija koda kaže karakteru da zapamti prikladnu vrednost, kao što je "REMEMBER ME" (zapamti me) ili "REMEMBER YOURSELF" (zapamti sam sebe). Najviša vrednost u apstraktnom tipu podatka je stavljena (varijabla pretpostavlja ovu vrednost) ako je karakteru rečeno da opozove bilo šta; sav tekst posle ove komande je tretiran kao komentar.

Primer koda[uredi | uredi izvor]

Ovo je standardni "Hello World" program (koji ispisuje na ekranu reči "Zdravo svete" upućene korisniku) u programskom jeziku Šekspir.

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.
Prince 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 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]

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

Spoljašnji linkovi[uredi | uredi izvor]