МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ
Понедельник, 23.12.2024, 14:13
ГлавнаяРегистрацияВход Приветствую Вас Гость | RSS

Меню сайта

Наш опрос
Какой язык программирования Вы изучаете
Всего ответов: 1029

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа


Главная » 2014 » Ноябрь » 5 » Язык программирования ШЕКСПИР
23:21
Язык программирования ШЕКСПИР

http://progopedia.ru/language/shakespeare/

Shakespeare — эзотерический язык программирования, в котором исходный код программ имитирует пьесы Шекспира.

Язык создан скандинавскими программистами Калле Хассельстрёмом и Юном Ослунном в процессе выполнения учебных заданий по синтаксическому анализу. За несколько недель до того авторы открыли для себя мир эзотерических языков, и решили создать свой собственный. Создание компилятора не входило в задание, поэтому авторы ограничились написанием транслятора в C. Язык не проходил стандартизацию.

Возможности языка включают в себя арифметические действия, ввод-вывод символов и чисел, условные и безусловные переходы и элементарные действия со стеками. Авторы языка утверждают, что ему присуща выразительность Basic вместе с дружелюбием Assembler.

Структура программы

  • заголовок — часть программы до первой точки. Интерпретируется как комментарий.
  • список действующих лиц — объявление переменных. Каждая переменная описывается в формате Имя, описание, где в качестве имени должно использоваться имя одного из героев пьес Шекспира, а описание может быть произвольным комментарием. Все переменные хранят целые числа, кроме того, их можно использовать в качестве стеков.
  • тело программы — состоит из актов и сцен, пронумерованных римскими цифрами. Они служат метками для условных и безусловных переходов. Каждая сцена, в свою очередь, состоит из отдельных команд, оформленных как реплики действующих лиц.

Для выполнения большинства команд на сцене должно быть два персонажа — говорящий и тот, к кому обращаются. Персонажи выводятся на сцену ремаркой [Enter Имя] и со сцены — ремаркой [Exit Имя] (если сцену покидают все, кто там был — ремаркой [Exeunt]).

Команды языка

Все команды выглядят как обращение персонажа Y к персонажу X.

  • присвоение переменной X нового значения. Новое значение формируется из констант и/или значений других переменных при помощи арифметических действий. Чаще всего принимает вид You are as <прилагательное> as <выражение>.
  • вывод символа X: Speak your mind!
  • вывод числа X: Open your heart!
  • ввод символа X: Open your mind!
  • ввод числа X: Listen to your heart!
  • безусловный переход: Let us return/proceed to scene II. Предполагается, что номер сцены задан в пределах текущего акта. Возможно также перейти в другой акт, но только на его начало.
  • условный переход состоит из двух частей: проверка некоторого условия и собственно переход.
  • добавление выражения в стек Y: X: Remember <выражение>.
  • извлечение значения из стека Y и присвоение его X: X: Recall <произвольный текст>.

Константы в Shakespeare задаются как существительные с набором прилагательных при них. Существительное соответствует 1 или -1 в зависимости от того, хорошее оно, нейтральное или плохое. Каждое прилагательное при нем умножает константу на 2. Прилагательные должны иметь ту же эмоциональную окраску, что и существительное, или быть нейтральными. Таким образом, непосредственно можно задать только константы, равные степеням двух; все остальные формируются из них путем применения арифметических действий.

Элементы синтаксиса:

Регистрозависимость нет
Регулярное выражение идентификатора переменной имя персонажа пьес Шекспира
Присваивание значения переменной You are <выражение> / You are as <прилагательное> as <выражение>
Объявление переменной <имя>, <произвольное описание>
Блок Scene <номер>: <произвольное название>.
Равенство Am I as <прилагательное> as <выражение>?
Неравенство Am I not as <прилагательное> as <выражение>?
Сравнение Am I better than <выражение>?
Если - то If so, let us proceed/return to scene <номер>.
Просмотров: 1757 | Добавил: i_elf | Рейтинг: 0.0/0
Всего комментариев: 0
Поиск

Календарь
«  Ноябрь 2014  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930

Архив записей

Друзья сайта
  • Творческий учитель
  • Сайт ООАКМР
  • Школьный сайт
  • Информатика учебник
  • МОИ

  • Copyright MyCorp © 2024 Сделать бесплатный сайт с uCoz