IFML 1.0

Вы также можете обратиться к учебнику по IFML или к сборнику вопросов по IFML


© TOY Soft, 2001

Автор: Sonic
ICQ:
120422848
Дата: 15.09.01

Создан специально для программы "Интерпретатор IFML" и раскрывает сущность этого языка.



Содержание:

0. Вводная часть
    0.1. Понятие объекта
    0.2. Понятие объектно-ориентированного программирования (ООП)
    0.3. Некоторые ограничения по объектам и ООП, касающиеся IFML
    0.4. Список аббревиатур и сокращений
 
1. Теоретическая часть (информационные основы)
    1.1. Разработка основных концепций IFML
        1.1.1. Разработка основных положений
        1.1.2. Разработка концепции связей объектов
        1.1.3. Определение ориентированности IFML
    1.2. Разработка принципа описания
        1.2.1. Деление на объявления и директивы
        1.2.2. Определение дифференцирования и интегрирования описаний
    1.3. Разработка принципа объектной структуры IFML
        1.3.1. Моделирование объектов
        1.3.2. Взаимосвязь объектов
        1.3.3. Оперирование с объектами
 
2. Аналитическая часть (спецификация IFML)
    2.1. Принцип интерпретации
        2.1.1. Интерпретация и интерпретаторы
        2.1.2. Текстовое описание
        2.1.3. Принцип описания
    2.2. Деление описания на объявления и директивы
        2.2.1. Объявления
            2.2.1.1. Принципы ООП в объявлениях
                2.2.1.1.1. Наследование
                2.2.1.1.2. Перекрытие
                2.2.1.1.3. Вызов перекрытого описания
        2.2.2. Директивы
            2.2.2.1. Применение директив
            2.2.2.2. Интеграция с объявлениями
            2.2.2.3. Использование объявлений по умолчанию
            2.2.2.4. Группы и пакеты
        2.2.3. Совместное использование объявлений и директив
    2.3. Свойства и события
        2.3.1. Определение свойств
        2.3.2. Определение событий
            2.3.2.1. Разновидности событий
            2.3.2.2. Вариантность событий
                2.3.2.2.1. Перекрытие по вариантности
            2.3.2.3. Скриптовое описание событий
                2.3.2.3.1. Скрипт как интерпретируемый код
                2.3.2.3.2. Использование объектов и их свойств в командах скрипта
        2.3.3. Постоянные свойства и события
            2.3.3.1. UIDO
            2.3.3.2. Status
            2.3.3.3. Использование постоянных свойств и событий
    2.4. Глобальные объекты
        2.4.1. Объект "Игровая среда"
        2.4.2. Объект "Игрок"
        2.4.3. Использование глобальных объектов

 

0. Вводная часть

В вводной части даются понятия объекта и объектно-ориентированного программирования (ООП). Также приводятся некоторые ограничения по объектам и ООП, касающиеся IFML. Эта часть является действительно вводной, т.к. не отражает основных идей IFML, а лишь объясняет уже известные явления для того, чтобы облегчить понимание изложенных ниже концепций. Причина этого кроется в том, что IFML, а точнее VWoA, базируется на современном представлении информации и программирования и является одной из их специализаций.

 

0.1. Понятие объекта

Объект - это некий информационно-отдельный элемент, на который возложены определённые функции. Он характеризуется наличием собственных областей данных и операционных структур. В отличие от общего программного пространства объект имеет чётко определённый, защищённый от "постороннего вмешательства" набор данных и комманд, позволяющих опрерировать с этими данными (операционный структуры). При этом "связь" с объектом происходит либо как с информационным элементом через его же информационные структуры, либо как одной из структур данных, чем он стал после применеия идей ООП.
В принципе, объект может быть использован и не столь конкректно, а просто как единица деления информационной структуры с динамическими данными.

 

0.2. Понятие объектно-ориентированного программирования (ООП)

Объектно-ориентированное программирование - это такой "способ" программирования, при котором наличиствующим и видущим методом обработки данных является использование объектов.
Вообще, ООП подразумевает собой использование объектов в программе. Т.е. их создание, оперирование, уничтожение и "общение". При этом первые три относятся к видению объекта в роли структуры данных, а четвёртое является "связью" с ним.
Под видением объекта как структуры данных я понимаю "отношение" к ниму как к переменной какого-либо типа (в данном случае - к объектного). Т.е. создание, оперирование и уничтожение объекта равносильно тем же действиям с переменной. При этом их осуществляет "главный" программный процесс. Конечно, возможно выполнение этих действий и внутри самого объекта по отношению к внутренне-создаваемым объектам, но уже это будет либо дополнение информационной структуры старшего объекта "главным" программным процессом, либо такое же использование объектов (т.е ООП), но в интерпретации старшего объекта. В последнем случае само строение и назначение старшего объета предполагает такую "видимость" самим объектов своих же данных, как будто они тоже объекты.Это предполагается уже самим программистом и является, в сущности, просто развитием ООП; в частности, использованием его для построения собственного ООП, например, в новь создаваемых языках программирования (Чем, кстати, и является IFML).
Связь с объектом является одной из основных идей ООП. Здесь объект "видится" закрытой информационной структурой, в которой протекают внутринние информационные процессы. Объект защищён от постороннего вмешательства, и связаться с ним можно лишь через его информационные структуры. Часто используется как бы прямой доступ к данным объекта, но на самом деле всё же происходит негласная обработка запроса на изменение данных.
ООП призвано для облегчения решения задачи путём разбиением данных задачи на части и распределение этих частей операционным блокам, работающим между собой через обусловленные внутренние информационные структуры. Этими блоками и являются объекты. Т.е. на какой-либо объект возлагается какая-либо небольшая задача, которую он "должен" решить. При этом один объект "ничего не знает" о другом в плане его содержания и контакирует с ним только через "главный" программный процесс. Получается, что объекты выступают в роли рабочих независимых блоком одной машины и выполняют отдельные функции.
Для понимания приведу пример. Предположим, надо создать обычные наручные часы. Так, "с ходу", это будет сложновато: что, где и как должно работать? Применим принципы ООП: разобьём единую машину на блоки: блок циферблата, блок батарейки, блок перевода электроэнергии во вращательную механическую, блок хронизации. Далее машина собирается через объединение блоков в нужном порядке и стандартизации их связей между собой. При этом каждый блок можно реализовать каким угодно образом, лишь бы только его связи подходили под стандарт (Вы же не сможете соединить шестерёнки с разными зубьями так, чтобы не понизилась общая работоспособность механизма.).

 

0.3. Некоторые ограничения по объектам и ООП, касающиеся IFML

Существует ряд ограничений по объектам и ООП, касающиеся IFML. Список ограничений привидён ниже:

  1.  

 

0.4. Список аббревиатур и сокращений

  1. VWoA, Virtual World of Adventure
    ВМП, Виртуальный Мир Приключения

  2. IFML, Interactive Fiction Markup Language
    ЯРИЛ, Язык Разметки Интерактивной Литературы

  3. UIDO, Unique IDentifier of Object
    УИДО, Уникальный ИДентификатор Объекта

  4. ORS, Object Reaction Script
    СРО, Скрипт Реакции Объекта

  5. ООП, Объектно-Ориентированное Программирование