ISSN 1812-3368. Вестник МГТУ им. Н.Э. Баумана. Сер. «Естественные науки». 2012
182
ция программирования, лежащая в ее основе, предложена в работах
[7, 8],
а полное описание среды моделирования на уровне руковод-
ства пользователя — в [9]. В системе MISS в среде MS-DOS реализо-
вана система программирования на специальном декларативном язы-
ке описания сложных систем, интегрированная с базой данных, си-
стемой поддержки выполнения модели и системой презентации
результатов моделирования. В качестве императивных языков про-
граммирования, на которых написаны вычислительные алгоритмы,
разрешены две версии языка MODULA-2, а также языки С и С++ в
Борландовской реализации. До этого моделирующее сообщество в
основном создавало языки моделирования императивного типа.
Впоследствии идея разделения описания сложной системы на
декларативную и императивную части применялась неоднократно.
Так, в спецификации архитектуры верхнего уровня (High Level Archi-
tecture — HLA) [10] — средстве создания сложных распределенных
моделей — устройство системы, ее компонент и связей между ними
описывается специальными шаблонами. В коммерчески успешной
отечественной инструментальной системе имитационного моделиро-
вания AnyLogic [11] в качестве декларативного языка описания
сложной системы применяется интерактивная графическая система с
отображением на экране пиктограмм компонент будущей системы и
построением связей между ними. В качестве императивного языка
программирования для системы AnyLogic используется язык Java.
Наконец, появился и даже стал международным стандартом язык мо-
делирования объектных систем UML [12], однако авторам настоящей
статьи он не симпатичен в силу своей громоздкости и, порой, за счет
этого — неоднозначности. В качестве результатов компиляции
транслятор UML может выдавать заготовки модулей для императив-
ных языков.
В настоящее время в ВЦ РАН продолжает развиваться концепция
разделения описания сложной системы на декларативную и импера-
тивную составляющие; работает макет инструментальной системы
распределенного моделирования. Некоторое затруднение вызывает
название этой концепции — такие названия, как агент, актор и даже
компонента уже заняты, и в программистском сообществе под ними
понимают вполне определенные и отличные от описанного выше
подходы. Сами разработчики концепции в работах [7—9, 13—15]
называли свой подход объектным или объектно-событийным, что
тоже не совсем верно, так как не отражает главных его моментов —
наличия поведения у компоненты и декомпозицию описания слож-
ной системы на декларативную и императивную составляющие.
Концепция описания модели [6] базируется на понятии компо-
ненты. Компонента — в некотором смысле «элементарная» сложная
система. Основой конструкции компоненты служит объект объектно-