Шекспир тілі – бағдарламалаудың эзотерикалық түрі. Қоғамдық оқиғалар сияқты код жазуға мүмкіндік береді, деректерді «Ромео» мен «Жульетта» сияқты кейіпкерлер арқылы өңдейді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Эзотерикалық бағдарламалау тілі
Esoteric programming language
Шекспир бағдарламалау тілі (SPL) – Джон Аслунд пен Карл Виберг жасаған эзотерикалық бағдарламалау тілі. Шеф бағдарламалау тілі сияқты, бұл тіл бағдарламаларды бағдарлама емес, басқа нәрсеге ұқсату үшін құрастырылған – осы жағдайда, Шекспирдің пьесаларына. Бағдарламаның басындағы кейіпкерлер тізімі бірнеше стектерді жариялайды, әдетте "Ромео" және "Джульетта" сияқты аттармен. Бұл кейіпкерлер бір-бірімен әңгімелеседі, оның барысында бір-бірінің жоғарғы мәндерін өңдейді, стектерге мән қосып алады және I/O операцияларын жасайды. Кейіпкерлер бір-бірінен шартты операторлар сияқты жұмыс істейтін сұрақтар қоя алады. Жалпы алғанда, бағдарламалау моделі ассемблер тіліне өте ұқсас, бірақ әлдеқайда көлемді.
The Shakespeare Programming Language (SPL) is an esoteric programming language designed by Jon Åslund and Karl Wiberg. Like the Chef programming language, it is designed to make programs appear to be something other than programs — in this case, Shakespearean plays. A character list in the beginning of the program declares a number of stacks, naturally with names like "Romeo" and "Juliet". These characters enter into dialogue with each other in which they manipulate each other's topmost values, push and pop each other, and do I/O. The characters can also ask each other questions which behave as conditional statements. On the whole, the programming model is very similar to assembly language but much more verbose.
Атау
Шекспир бағдарламасының бірінші жолы "тақырып" деп аталады. Компилятор бірінші жолдан бастап, бірінші нүктеге дейінгінің бәрін түсініктеме деп есептейді.
The first line in a Shakespeare program is called the 'title'. The compiler considers anything from the first line to the first period to be a comment.
Актерлер мен сахналар
Шекспирдегі кодтың бір бөлігі кейіпкерлердің (айнымалылардың) өзара әрекеттесетін сахналарды қамтитын актілерге бөлінеді. Әр акт пен сахна римдік сандармен нөмірленеді және GOTO белгісі ретінде қолданылады. Қолданыстан кейінгі кез келген код түсініктеме деп есептеледі. Олар мынадай форматта жазылған:
Акт I: Гамлеттің қорлаулары мен мақтауы. Сахна I: Ромеоға жасалған қорлау.
A piece of code in Shakespeare is broken into Acts which contain Scenes in which characters (variables) interact. Each Act and Scene is numbered with a Roman numeral and serves as a GOTO label. Any code after the colon is considered a comment. They are written in the form:
Act I: Hamlet's insults and flattery. Scene I: The insulting of Romeo.
Желілер
Жолдар кейіпкердің айтқан сөздері ретінде көрсетіледі және кем дегенде бір сөйлемнен тұрады. Әрбір сөйлем айнымалыға жаңа мән беруі, оның мәнін көрсетуі немесе кіріс сұрауы мүмкін. Жолдар стектерді өңдеуге немесе егер/әйтпесе немесе goto операторлары ретінде жұмыс істеуге қабілетті. Жол кейіпкердің аты мен қос нүктеден басталады. Осы кейіпкер сөйлеп тұрғандықтан, сахнадағы екінші кейіпкер "Сен", "Сіз" немесе "Сол" деп аталатын айнымалы болып табылады.
Lines are represented as dialogue spoken by a character, and consist of at least one sentence. Each sentence may assign a new value to a variable, direct a variable to output its value, or direct it to receive an input. Lines can also manipulate stacks or act as if/then or goto statements. A line starts with a character's name and a colon. Since this character is the speaker, the other character on stage is the variable that is addressed as "You", "Thou", or "Thee".
Кірісі мен шығысы
Сызықтар сонымен қатар шығыс беру немесе кіріс алу үшін айнымалыны шақыруы мүмкін. "Жүрегіңді аш" айнымалының сандық мәнін шығарады, ал "Ой-ойыңды айт" сәйкес ASCII символын шығарады. "Жүрегіңді тыңда" немесе "Ақылыңды аш" айнымалының пайдаланушыдан кіріс алуын қамтамасыз етеді; біріншісі – сан, екіншісі – символ үшін.
Lines can also call for a variable to give output or receive input. "Open your heart" outputs the variable's numerical value, while "Speak your mind" outputs the corresponding ASCII character. "Listen to your heart" or "Open your mind" cause the variable to receive input from the user; the former for a number and the latter for a character.
Баспаптарды итеріп және қағып шығару
Әрбір айнымалы – стек. Егер жол кейіпкерге "Мені есте сақта" немесе "Өзіңді есте сақта" сияқты сәйкес мәнді "жадына сақтауды" бұйырса, онда айнымалының стегіне бүтін сан қосылады. Егер кейіпкерге еске алу туралы айтылса, стектегі ең жоғарғы мән алынып тасталады (яғни, айнымалы осы мәнді қабылдайды); осы сөзден кейінгі барлық мәтін түсініктеме деп есептеледі.
Each variable is a stack. A variable will have an integer pushed onto its stack if a line tells the character to "remember" an appropriate value, such as "Remember me", or "Remember yourself". The topmost value in the stack is popped (i. e., the variable assumes this value) if the character is told to "recall" anything; all text after this word is treated as a comment.