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

редактировать
эзотерический язык программирования, разработанный Джоном Ослундом и Карлом Хассельстремом

Язык программирования Шекспира (SPL ) - это эзотерический язык программирования, разработанный Йоном Ослундом и Карлом Хассельстремом. Как и язык программирования Chef, он предназначен для того, чтобы программы казались чем-то отличным от программ; в данном случае пьесы Шекспира. Список символов

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

Содержание
  • 1 Программирование в Шекспире
    • 1.1 Название
    • 1.2 Dramatis Personae
    • 1.3 Акты и сцены
    • 1.4 Вход, выход и выход
    • 1.5 Строки
      • 1.5.1 Константы и присвоение значений
      • 1.5.2 Ввод и вывод
      • 1.5.3 Условные операторы и gotos
      • 1.5.4 Выталкивание и извлечение стеков
  • 2 Пример кода
  • 3 См. также
  • 4 Ссылки
    • 4.1 Встроенные ссылки
    • 4.2 Общие ссылки
  • 5 Внешние ссылки
Программирование в Шекспире

Заголовок

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

Dramatis Personae

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

Имя, Описание

Где Имя- имя переменной, а Описаниеигнорируется компилятором. Компилятор распознает только те имена, которые соответствуют реальным шекспировским персонажам.

Акты и сцены

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

Акт I: Гамлетовские оскорбления и лесть. Сцена I: Оскорбление Ромео.

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

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

[Входят Джульетта] [Входят Ромео и Джульетта] [Уходят Ромео] [Уходят Ромео и Джульетта] [Уходят]

Строки

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

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

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

Гамлет: Ты лжец, тупой сирот, большой вонючий недалекий трус! Джульетта: Ты негодяй, как квадратный корень из Ромео!

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

Ввод и вывод

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

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

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

Джульетта: Я лучше вас? Гамлет: Если так, то приступим к сцене III.

Выталкивание и выталкивание стопок

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

Пример кода

Это стандартная программа "Hello World " (которая выводит или отображает "Hello World!" пользователю) в SPL.

Печально известная программа Hello World. Ромео, молодой человек с удивительным терпением. Джульетта, тоже молодая женщина удивительной грации. Офелия, замечательная женщина, много спорящая с Гамлетом. Гамлет, льстец Andersen Insulting A / S. Акт I: Оскорбления и лесть Гамлета. Сцена I: Оскорбление Ромео. [Входят Гамлет и Ромео] Гамлет: Ты лжец, глупый безотцовщица, большой вонючий недалекий трус! Ты глуп, как разница между красивым богатым храбрым героем и тобой! Говорить откровенно! Вы столь же смелы, как сумма вашего толстого фаршированного неправильно использованного пыльного старого гнилого гульфика и прекрасного теплого, мирного, солнечного летнего дня. Вы здоровы, как разница между суммой самой сладкой красной розы и моим отцом и вами! Говорить откровенно! Вы так же трусливы, как сумма самого себя и разница между большим могучим гордым королевством и лошадью. Говорить откровенно. Говорить откровенно! [Уходит Ромео] Сцена II: Восхваление Джульетты. [Входит Джульетта] Гамлет: Ты сладок, как сумма Ромео, его лошади и его черной кошки! Выскажи свое мнение! [Уходит Джульетта] Сцена III: Восхваление Офелии. [Входит Офелия.] Гамлет: Ты прекрасна, как плод большого деревенского городка и моего удивительного бездонного вышитого кошелька. Выскажи свое мнение! Ты такой же любящий, как продукт самого голубого, ясного, сладкого неба и суммы белки и белой лошади. Ты прекрасна, как разница между Джульеттой и тобой. Выскажи свое мнение! [Уходят Офелия и Гамлет] Акт II: За спиной Гамлета. Сцена I: Беседа Ромео и Джульетты. [Входят Ромео и Джульетта] Ромео: Выскажи свое мнение. Вы беспокоитесь не меньше, чем о себе и о разнице между моим маленьким гладким хомячком и моим носом. Говорить откровенно! Джульетта: Выскажи свое мнение! Ты такой же плохой, как Гамлет! Вы так же малы, как разница между квадратом суммы между моим маленьким пони и вашей большой волосатой собакой и кубиком вашего жалкого маленького гульфика. Говорить откровенно! [Уходит Ромео] Сцена II: Разговор Джульетты и Офелии. [Входит Офелия.] Джульетта: Ты в точности как частное между Ромео и суммой небольшого пушистого зверька и пиявки. Говорить откровенно! Офелия: Ты отвратительна, как частное между Ромео и вдвое больше разницы между омелой и сочащимся зараженным пузырем! Говорить откровенно! [Исх.]
См. Также
Ссылки

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

Общие ссылки

Внешние ссылки
Последняя правка сделана 2021-06-08 03:05:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте