Jump to content

Язык программирования Шекспира

Язык программирования Шекспира ( SPL ) — это эзотерический язык программирования, разработанный Джоном Ослундом и Карлом Вибергом. [1] Как и язык программирования Chef , он создан для того, чтобы программы выглядели чем-то иным, чем просто программами — в данном случае это шекспировские пьесы.

Список персонажей в начале программы объявляет несколько стеков , естественно, с именами типа «Ромео» и «Джульетта». Эти персонажи вступают друг с другом в диалог, в котором они манипулируют высшими ценностями друг друга, толкают друг друга и выполняют ввод-вывод . Персонажи также могут задавать друг другу вопросы, которые действуют как условные утверждения . В целом модель программирования очень похожа на ассемблер , но гораздо более многословна.

Программирование на языке Шекспира

[ редактировать ]

Заголовок

[ редактировать ]

Первая строка в программе Шекспира называется «заголовком». Компилятор считает комментарием все, от первой строки до первой точки.

Драматические персонажи

[ редактировать ]

В этом разделе объявляются переменные. Каждая переменная может содержать целое число со знаком и имеет следующий вид:

Name, Description

Где Name это имя переменной и Description игнорируется компилятором. Компилятор распознает только те имена, которые соответствуют реальным шекспировским персонажам. [1]

Действия и сцены

[ редактировать ]

Часть кода Шекспира взломана Acts которые содержат Scenes в котором взаимодействуют персонажи (переменные). Каждый Act и Scene нумеруется римской цифрой и служит GOTO этикетка. Любой код после двоеточия считается комментарием. Они записываются в виде:

Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.

Вход, выход и выход

[ редактировать ]

Отдельные строки кода обычно принимают форму фрагмента диалога, произнесенного одним персонажем другому; именно так присваивается, изменяется или выводится значение переменной (проговариваемого символа). К персонажу можно обращаться только как «Ты», «Ты» или «Ты». Таким образом, при произнесении строк обычно должно быть ровно два персонажа «на сцене»: один, чтобы говорить, и другой, с которым нужно говорить. [1] Чтобы вызвать переменную на сцену, Enter команда используется со списком из одного или нескольких символов. Exit Команда приказывает ровно одному персонажу из списка покинуть сцену. Exeunt призывает более одного персонажа покинуть сцену, или, если в списке нет ни одного персонажа, все персонажи покинут сцену. [1] Используется следующий формат:

[Enter Juliet]
[Enter Romeo and Juliet]
[Exit Romeo]
[Exeunt Romeo and Juliet]
[Exeunt]

Строки представлены как диалоги, произнесенные персонажем, и состоят как минимум из одного предложения. Каждое предложение может присваивать новое значение переменной, указывать переменной на вывод ее значения или направлять ее на получение входных данных. Линии также могут манипулировать стеками или действовать как операторы if/then или goto. Строка начинается с имени персонажа и двоеточия. Поскольку этот персонаж является говорящим, другой персонаж на сцене — это переменная, к которой обращаются как «Ты», «Ты» или «Ты».

Константы и присвоение значений

[ редактировать ]

Константы представлены сочетаниями существительных и прилагательных; язык распознает конечный список каждого из них, и оба списка разделяются на те, которые имеют положительный, отрицательный или нейтральный тон, как это воспринимали Ослунд и Хассельстрём. Положительные и нейтральные существительные имеют значение 1, а отрицательные существительные имеют значение -1. Любое прилагательное умножает существительное на 2, а прилагательные могут быть составными. [1] Притяжательные местоимения игнорируются анализатором, а слова, относящиеся к базовой арифметике, распознаются как операции, такие как «сумма», «частное» и «куб». Предложение, которое присваивает значение персонажу, начинается с «Ты», «Ты» или «Ты», может опционально продолжаться словами «как [любое прилагательное] как», а затем дает математическую формулу в существительных, прилагательных и переменных. и операции для нового значения. Ниже приведены примеры таких строк: [1]

Hamlet:
 You lying stupid fatherless big smelly half-witted coward!

Juliet:
 You are as villainous as the square root of Romeo!

Математические формулы также могут использовать имена других персонажей (даже если этих персонажей нет на сцене) для использования текущего значения этого персонажа в вычислениях или «вас» или «сам» для персонажа, с которым разговаривают.

Ввод и вывод

[ редактировать ]

Строки также могут вызывать переменную для вывода или получения ввода. «Открой свое сердце» выводит числовое значение переменной, а «Выскажи свое мнение» выводит соответствующий символ ASCII. «Слушай свое сердце» или «Открой свой разум» заставляют переменную получать вводимые пользователем данные; первый для числа, а второй для символа. [1]

Условные операторы и переходы

[ редактировать ]

Оператор if/then формулируется как вопрос, заданный персонажем. Слова «как [любое прилагательное] как» представляют собой критерий равенства, тогда как «лучше» и «хуже» соответствуют значениям «больше» и «меньше» соответственно. Последующая строка, начинающаяся со слов «если так» или «если нет», определяет, что произойдет в ответ на истинность или ложность исходного условия. Оператор перехода начинается со слов «Давайте», «Мы должны» или «Мы должны», продолжает «возвратиться» или «перейти к», а затем дает действие или сцену. Сцена будет анализироваться как сцена в текущем акте; оператор goto не может вызвать сцену в другом акте. [1] Условный оператор для вызова goto будет выглядеть так: [1]

Juliet:
 Am I better than you?

Hamlet:
 If so, let us proceed to scene II.

Пуш и извлечение стеков

[ редактировать ]

Каждая переменная представляет собой стек . В стек переменной будет помещено целое число, если строка предписывает персонажу «запомнить» соответствующее значение, например «Запомнить меня» или «Запомнить себя». Самое верхнее значение в стеке извлекается (т. е. переменная принимает это значение), если персонажу приказано «вспомнить» что-либо; весь текст после этого слова рассматривается как комментарий. [1]

Пример кода

[ редактировать ]

Стандартное «Привет, Мир!» программа :

Идея состоит в том, чтобы сгенерировать значения ASCII для каждого символа строки и распечатать их с помощью команды «Выскажите свое мнение». Например, первая строка диалога, сказанная Гамлетом, использует комбинацию арифметических операций для присвоения десятичного значения 72 (двоичное 1001000) другому главному герою Ромео, которое в ASCII соответствует букве «H».


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]

См. также

[ редактировать ]

Встроенные ссылки

[ редактировать ]
  1. ^ Jump up to: а б с д и ж г час я дж «Язык программирования Шекспира» . Архивировано из оригинала 21 июля 2022 г.

Общие ссылки

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ec08e1512d67de7fe3a42a5b031e30af__1718645940
URL1:https://arc.ask3.ru/arc/aa/ec/af/ec08e1512d67de7fe3a42a5b031e30af.html
Заголовок, (Title) документа по адресу, URL1:
Shakespeare Programming Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)