Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по КМ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.81 Mб
Скачать

Типы ресурсов

Типы ресурсов определяют структуру глобальной базы данных программы (модели). Описание каждого типа ресурса имеет следующий формат:

$Resource_type <имя_типа> : <вид_ресурсов>

$Parameters

<описание_параметра> { <описание_параметра> }

$End

Вид ресурсов данного типа может быть одним из следующих:

  • permanent - постоянные ресурсы; ресурсы этого вида всегда присутствуют в модели, они не могут быть уничтожены или созданы во время прогона;

  • temporary - временные ресурсы; ресурсы этого вида могут во время прогона создаваться и уничтожаться при выполнении операций, правил и совершении нерегулярных событий.

Описание параметра ресурса имеет формат:

<имя_параметра> : <тип_параметра> [= <значение_по_умолчанию>]

А) Описание ресурсов

Ресурсы определяют начальное состояние глобальной базы данных модели. Объект ресурсов имеет следующий формат:

$Resources

<описание_ресурса> {<описание ресурса>}

$End

Описание каждого ресурса имеет следующий формат:

<имя ресурса>: <имя типа ресурса> [trace | no_trace] <начальные значения параметров>

Б) Описание образцов

Образцы составляют совместно с операциями процедурную часть программы на РДО-языке. Они представляют собой знания о функционировании моделируемой системы (знания о предметной области), записанные в виде модифицированных продукционных правил в соответствии с синтаксисом языка.

Описание образца имеет следующий формат:

$Pattern <имя_образца>:<тип_образца> [trace | no trace]

[ $Parameters <описание_параметров_образца>]

$Relevant_resources <описание_релевантных_ресурсов_образца>

[ <способ_выбора>]

$Time = <выражение времени>

$Body

<тело_образца>

$End

В данной версии языка возможны образцы следующих типов:

  • operation - образец, описывающий операцию;

  • irregular_event - образец, описывающий нерегулярное событие;

  • rule - образец, описывающий продукционное правило;

  • keyboard - образец, описывающий клавиатурную операцию.

Описание параметров образца имеет следующий формат:

<имя параметра>: <тип параметра> [= <значение по умолчанию>]

{<имя параметра>: <тип параметра> [= <значение по умолчанию>]}

Описание релевантных ресурсов для образцов типа operation и keyboard имеет следующий формат:

<имя релевантного ресурса>: <описатель>

<статус_конвертора_начала> <статус конвертора конца>

Описание релевантных ресурсов образца для образцов типа irregular_event и rule имеет следующий формат:

<имя_релевантного_ресурса>: <описатель> <статус конвертора>

Описатель ресурса - это либо имя типа ресурса, либо имя ресурса.

Статус конвертора описывает, что происходит с релевантным ресурсом. В данной версии языка определены следующие статусы конверторов:

  • Keep - релевантный ресурс сохраняется, но его состояние (значения параметров) изменяется;

  • Create - релевантный ресурс создается;

  • Erase - релевантный ресурс уничтожается;

  • NonExist - релевантный ресурс не существует;

  • NoChange - состояние релевантного ресурса не изменяется.

Способ выбора определяет, какие ресурсы будут использованы в качестве релевантных в том случае, если описатель релевантного ресурса есть имя типа и существует более одного ресурса, удовлетворяющего предусловию. В РДО-языке определены следующие способы выбора:

  • first - использовать первые попавшиеся ресурсы, удовлетворяющие предусловиям;

  • with_max <арифметическое выражение> - использовать такую комбинацию релевантных ресурсов, для которой значение указанного арифметического выражения максимально;

  • with_min <арифметическое выражение> - использовать такую комбинацию релевантных ресурсов, для которой значение указанного арифметического выражения минимально.

Выражение времени представляет собой арифметическое выражение целого или вещественного типа.

Тело образца имеет следующий формат:

<имя_релевантного_ресурса> <правило использования>

{ <имя_релевантного_ресурса> <правило использования>}

Правило использования должно быть указано для каждого ресурса и в зависимости от типа образца имеет форматы:

для образца типа operation и keyboard:

<предусловие> [Convert_begin <конвертор>] [Convert_end <конвертор>]

для образца типа irregular_event:

[Convert event <конвертор>]

для образца типа rule:

<предусловие> [Convert_rule <конвертор>]

Предусловие записывают в следующем формате:

Choice from <логическое выражение> [<способ выбора>]

или

Choice NoCheck [<способ выбора>]

Конвертор записывают в следующем формате:

<конвертор_параметра релевантного ресурса>

{ <конвертор параметра релевантного ресурса>}

Конвертор параметра релевантного ресурса имеет формат:

<имя параметра> set <арифметическое выражение>

или

<имя параметра> NoChange