Языки моделирования

В широком смысле, моделирование может быть определено как

процесс представления динамической системы моделью для получения информации об этой системе путем проведения экспериментов над ее моделью. Применение этого метода полезно в том случае, когда исследуемая система не поддается изучению аналитическими методами, а прямое экспериментирование с самой системой не целесообразно. Применяемые типы моделей и проводимые с ними эксперименты охватывают широкий диапазон задач - от изучения профилей крыла в аэродинамической трубе до изучения игр

и, в частности, игр с участием людей.

В настоящее время широкое распространение получило моделирование

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

социальных и экономических систем, систем связи и т.п.

Следует подчеркнуть, что моделирование является, по существу,

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

моделирования позволяет:

предоставить в распоряжение исследователя, строящего модель системы,

концептуальную основу для ясного и четкого мышления;

предоставить средства для описания динамических моделей;

облегчить процесс программирования (модели для имитации известны

своей сложностью программирования даже при использовании

алгоритмических языков высокого уровня).

Наибольшую известность среди таких языков получил язык Симула.

Язык Симула (на русском языке описание языка Симула сделано в *967 г.)

 

базируется на Алголе-60, и основной определяющий материал в нем оформлен

как дополнения и изменения к «Сообщению о языке «Алгол-60». То есть, язык Симула является почти правильным расширением языка Алгол-6*, и чисто

вычислительные возможности языка Симула не меньше, чем у Алгола-60.

Главная роль в этом языке моделирования отводится понятию

параллельного оперирования с процессами в системном времени, а также понятию универсальной обработки списков с процессами в роли компонентов. Специальные средства предусмотрены для манипуляций с упорядоченными

множествами процессов.

Имя языка программирования Симула (S*m*la) происходит от английских

слов *IMUlation LAng*age, что в переводе и означает язык моделирования. В принципе этим именем называли два языка программирования: Симула-1 и Симула-*7. Оба языка основываются на языке Алгол-60 и содержат его в

качестве своего подмножества.

Симула-1 разработан в Норвежском компьютерном центре У.Далом и

К.Нюгордом в 1964 г. Язык предназначен для моделирования систем с дискретными событиями, т.е. систем, представляющих последовательность сменяемых друг друга мгновенных событий. Термин «моделирование» У.Дал определил в 1**6 г. как «процесс представления динамической системы моделью для получения информации об этой системе путем проведения

экспериментов над моделью».

В 196*-1968 гг. авторами Симула-1 и присоединившимся к ним

Б.Мюрхаугом был создан язык Симула-67, который по своей универсальности близок к таким языкам, как Алгол-68 и Ада. Средства, включающие в себя все возможности языка Симула-1, одновременно являются частью языка Симула-

*7.

Элементы языка суть абстракции, применяемые к широкому классу

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

компонентами.

Фундаментальным новым понятием языка Симула-67 является понятие

«объект», которое эволюционизировало из понятия «процесс» языка Симула-1. Под объектом понимается экземпляр описания класса, который имеет свои собственные локальные данные и действия. В языке Симула-67 имеются элементарные операторы, которые позволяют организовать исполнение программы в виде последовательных активных фаз объектов. Это исполнение называют «квазипараллельным». Квазипараллельное исполнение программ позволяет отойти от обычной схемы решения (в виде последовательности шагов) задачи и представить ее в виде ряда взаимодействующих объектов,

получивших название «сопрограмм».

Установление в языке таких понятий, как «класс», «подкласс» и других

механизмов позволяет использовать Симула-67 в качестве основы для построения специализированных языков, ориентированных на различные

 

предметные области. Одним из преимуществ языка, по сравнению с базовым

предшественником, является наличие средств ввода-вывода.

Идеи, заложенные в языке Симула-67, оказали существенное влияние на

языки программирования, появившиеся после него. В частности, понятие «класс» нашло свое воплощение в понятии «абстрактные типы данных», а понятие «объект» - в объектно-ориентированном программировании, которое

утвердило свой статус в разработанном А.Кейем языке Смолток.

Характеризуя значение языка, У.Дал пишет: «Язык Симула-67 выходит за

традиционные рамки языков программирования и может служить основой, на которой строятся различные математические теории - от геометрии и алгебры

до химической технологии и сельского хозяйства [7].