Кіріспе

Эзотерикалық бағдарламалау тілі

Шекспир бағдарламалау тілі (SPL) – Джон Аслунд пен Карл Виберг жасаған эзотерикалық бағдарламалау тілі. Шеф бағдарламалау тілі сияқты, бұл тіл бағдарламаларды бағдарлама емес, басқа нәрсеге ұқсату үшін құрастырылған – осы жағдайда, Шекспирдің пьесаларына. Бағдарламаның басындағы кейіпкерлер тізімі бірнеше стектерді жариялайды, әдетте "Ромео" және "Джульетта" сияқты аттармен. Бұл кейіпкерлер бір-бірімен әңгімелеседі, оның барысында бір-бірінің жоғарғы мәндерін өңдейді, стектерге мән қосып алады және I/O операцияларын жасайды. Кейіпкерлер бір-бірінен шартты операторлар сияқты жұмыс істейтін сұрақтар қоя алады. Жалпы алғанда, бағдарламалау моделі ассемблер тіліне өте ұқсас, бірақ әлдеқайда көлемді.

Атау

Шекспир бағдарламасының бірінші жолы "тақырып" деп аталады. Компилятор бірінші жолдан бастап, бірінші нүктеге дейінгінің бәрін түсініктеме деп есептейді.

Актерлер мен сахналар

Шекспирдегі кодтың бір бөлігі кейіпкерлердің (айнымалылардың) өзара әрекеттесетін сахналарды қамтитын актілерге бөлінеді. Әр акт пен сахна римдік сандармен нөмірленеді және GOTO белгісі ретінде қолданылады. Қолданыстан кейінгі кез келген код түсініктеме деп есептеледі. Олар мынадай форматта жазылған:
Акт I: Гамлеттің қорлаулары мен мақтауы. Сахна I: Ромеоға жасалған қорлау.

Желілер

Жолдар кейіпкердің айтқан сөздері ретінде көрсетіледі және кем дегенде бір сөйлемнен тұрады. Әрбір сөйлем айнымалыға жаңа мән беруі, оның мәнін көрсетуі немесе кіріс сұрауы мүмкін. Жолдар стектерді өңдеуге немесе егер/әйтпесе немесе goto операторлары ретінде жұмыс істеуге қабілетті. Жол кейіпкердің аты мен қос нүктеден басталады. Осы кейіпкер сөйлеп тұрғандықтан, сахнадағы екінші кейіпкер "Сен", "Сіз" немесе "Сол" деп аталатын айнымалы болып табылады.

Кірісі мен шығысы

Сызықтар сонымен қатар шығыс беру немесе кіріс алу үшін айнымалыны шақыруы мүмкін. "Жүрегіңді аш" айнымалының сандық мәнін шығарады, ал "Ой-ойыңды айт" сәйкес ASCII символын шығарады. "Жүрегіңді тыңда" немесе "Ақылыңды аш" айнымалының пайдаланушыдан кіріс алуын қамтамасыз етеді; біріншісі – сан, екіншісі – символ үшін.

Баспаптарды итеріп және қағып шығару

Әрбір айнымалы – стек. Егер жол кейіпкерге "Мені есте сақта" немесе "Өзіңді есте сақта" сияқты сәйкес мәнді "жадына сақтауды" бұйырса, онда айнымалының стегіне бүтін сан қосылады. Егер кейіпкерге еске алу туралы айтылса, стектегі ең жоғарғы мән алынып тасталады (яғни, айнымалы осы мәнді қабылдайды); осы сөзден кейінгі барлық мәтін түсініктеме деп есептеледі.