Shakespeare (язык программирования)

Shakespeare (язык программирования)

Shakespeare — эзотерический язык программирования разработанный Джоном Аслаудом и Карлом Хассельстромом. Язык Shakespeare призван замаскировать исходный код программы под пьесы Шекспира, как язык программирования Chef маскирует их под рецепты.

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

Содержание

Программирование на Shakespeare

Эпиграф

Первый абзац (от начала документа до первой пустой строки) в программе является эпиграфом и расценивается компилятором как комментарий.

Персонажи пьесы

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

 Name, Description

Здесь Name является названием переменной, а Description (описание переменной) игнорируется компилятором.

Акты и Сцены

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

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

Вошёл, Вышел и Покинули

Прежде, чем персонажи смогут участвовать, они должны сначала выйти на сцену. Чтобы поместить персонажа на сцену — его необходимо вызвать командой Enter. Одновременно на сцене могут находиться только два персонажа. Иначе не ясно, с кем ведется общение. Чтобы персонаж покинул сцену, необходимо обратиться к нему командой Exit. Если акт заканчивается, или необходимо просто прогнать нескольких персонажей, то необходимо использовать команду Exeunt. Используется следующий формат:

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

Программа «Hello, World» на Shakespeare

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, 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]

Список зарезервированных слов

В соответствии с Perl модулем Lingua::Shakespeare

Прилагательные

Негативные

bad, cowardly, cursed, damned, dirty, disgusting, distasteful, dusty, evil, fat, fat-kidneyed, fatherless, foul, hairy, half-witted, horrible, horrid, infected, lying, miserable, misused, oozing, rotten, smelly, snotty, sorry, stinking, stuffed, stupid, vile, villainous, worried

Нейтральные

big, black, blue, bluest, bottomless, furry, green, hard, huge, large, little, normal, old, purple, red, rural, small, tiny, white, yellow

Позитивные

amazing, beautiful, blossoming, bold, brave, charming, clearest, cunning, cute, delicious, embroidered, fair, fine, gentle, golden, good, handsome, happy, healthy, honest, lovely, loving, mighty, noble, peaceful, pretty, prompt, proud, reddest, rich, smooth, sunny, sweet, sweetest, trustworthy, warm

Существительные

Негативные

Hell, bastard, beggar, blister, codpiece, coward, curse, death, devil, draught, famine, flirt-gill, goat, hate, hog, hound, leech, lie, pig, plague, starvation, toad, war, wolf

Нейтральные

animal, aunt, brother, cat, chihuahua, cousin, cow, daughter, door, face, father, fellow, granddaughter, grandfather, grandmother, grandson, hair, hamster, horse, lamp, lantern, mistletoe, moon, morning, mother, nephew, niece, nose, purse, road, roman, sister, sky, son, squirrel, stone wall, thing, town, tree, uncle, wind

Позитивные

Heaven, King, Lord, angel, flower, happiness, joy, plum, summer’s day, hero, rose, kingdom, pony

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Shakespeare (язык программирования)" в других словарях:

  • Эзотерический язык программирования — Эзотерические языки программирования вид языков программирования, не предназначенных для практического применения. Образец компьютерного юмора. Эзотерические языки придумываются для развлечения, часто они пародируют «настоящие» или являются… …   Википедия

  • Shakespeare — эзотерический язык программирования разработанный Джоном Аслаудом и Карлом Хассельстромом. Язык Shakespeare призван замаскировать исходный код программы под пьесы Шекспира, как язык программирования рецепты. Список персонажей в начале программы… …   Википедия

  • Эзотерические языки программирования — вид языков программирования, не предназначенных для практического применения. Образец компьютерного юмора. Эзотерические языки придумываются для развлечения, часто они пародируют «настоящие» или являются абсурдным воплощением «серьёзных»… …   Википедия

  • Шекспир, Уильям — Уильям Шекспир William Shakespeare Единственное достоверное известное изображение& …   Википедия

  • Гамлет — У этого термина существуют и другие значения, см. Гамлет (значения). Гамлет The Tragicall Historie of Hamlet, Prince of Denmarke …   Википедия

  • Король Лир — У этого термина существуют и другие значения, см. Король Лир (значения). Король Лир King Lear …   Википедия

  • Отелло — У этого термина существуют и другие значения, см. Отелло (значения). Отелло, венецианский мавр The Tragedy of Othello, The Moor of Venice …   Википедия

  • Генрих V (пьеса) — Генрих V (Хроника история Генриха Пятого) Henry V …   Википедия

  • Ричард III (пьеса) — У этого термина существуют и другие значения, см. Ричард III (значения). Ричард III Richard III …   Википедия

  • Мера за меру — Measure for Measure …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»