- [ проекты | ярил 2.0 ] -

TOY Soft


[ Новости ] - [ Продукты ] - [ Поддержка ] - [ Проекты ] - [ О нас ] - [ Ссылки ]
[ Гостевая ] - [ Форум ] - [ Чат ] - [ Опрос ]



Проект ЯРИЛ 2.0 представляет собой систему, предназначенную для проектирования, создания и проигрывания средств описания интерактивной литературы (Interactive Fiction, IF) на специальном языке ЯРИЛ.
Язык представляет собой набор алфавитных, синтаксических и семантических правил для корректного описания среды своего функционирования. Основными особенностями языка являются его модульность, предметность, объектно-ориентированность и событийность.
Далее представлены наработки по структуре языка. (Материалы взяты непосредственно из моего блокнота.)


Содержание

Модель Inform (как она видится мне)
Парсер
Программирование
События
Формализация языка (раздел постоянно дополняется и переписывается)



Модель Inform (как она видится мне)

Всё - объекты.
Объекты можно создавать, удалять, помещать в другие объекты, убирать из них, перемещать.
Прав нет. Есть Среда, которая управляет объектами. Есть Игрок, который указывает Среде, что делать. Среда умеет читать, что заложено в объектах, и выполняет это.
Т.о. существует 3 глобальных объекта: Среда, Игрок и Проигрыватель. Проигрыватель - объект-посредник между Игроком и Средой, но он же и часть Среды. Все остальные объекты - объекты Мира.

Связь между объектами осуществляется при помощи Потоков. Схема потоков приведена ниже:

Схема потоков

Команда (как наиболее важный из потоков) пораждает Событие. Событие - это попытка что-либо сделать с помощью Среды с объектами Мира.

Команда: Действие, Шаблоны: Макрос

В Шаблон входит:
Макрос - процедура, обрабатывающая шаблон.
Т.о. существует набор действий - оснований для команд. Действие в команде всегда идёт первым. За ним следую параметры - их вид и порядок описывается в шаблоне специальными символами и словами. Каждый шаблон указывает на макрос - скрипт обработки команды.


Парсер

Парсер работает следующим образом:
  1. В ведённой строке-команде он выделяет 1ое слово и записывает его в переменную Действие (вернее, указатель на него в словаре действий).
  2. Он находит в описании действия набор шаблонов и проверяет каждый из них на сходимость с командой-строкой. При этом параметры команды, которые соответствуют типовым (или видовым) определениям, записываются в соответствующие массивы типовых переменных (вернее, указатели на них в типовых словарях).
  3. Далее запускается макрос, соответствующий подошедшему шаблону, и ему передаются все переменные, заполненные во время парсинга.


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

Непосредственное программирование состоит из 2х частей:
  1. Описательное.
  2. Скриптовое.

Описательное программирование подразумевает статическое описание объектов, команд и событий языка.
Сюда входит:
  1. Описание типов объектов (классов)
  2. Описание экземпляров объектов (они создаются перед запуском истории)
  3. Описание команд:
    1. Описание действий
    2. Описание шаблонов
    3. Описание макросов
Скриптовым программированием называется непосредственное описание действий среды в ответ на команды Игрока. Оно (программирование) позволяет совершать манипуляции с объектами (создание, удаление, перемещение, изменение свойств) и вызывать макросы.

Эти 2 части в любой последовательности составляют историю на языке ЯРИЛ 2.0.
Кроме всего прочего язык ЯРИЛ 2.0 поддерживает модульную структуру программирования: весь исходный код может быть поделён на модули - отдельные части кода, код которых просто вставляется (во время компиляции) вместо описания включения этого модуля.


События

Событие представляет собой момент изменения свойства каког-либо объекта или запуск макроса. Событие (в понятии языка) - это описание реакции Среды (на скриптовом языке) в ответ на изменение свойства (вернее, попытку изменения) или запуск макроса.

Событие: Тип (изменение_свойства/запуск_макроса), Субъект события (объект.свойство/имя_макроса)

-> Формализация языка (раздел постоянно дополняется и переписывается)
Hosted by uCoz