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

Вопрос №20

Язык программирования СИМУЛА

 

Cимула (от SIMUIation LAnguage, т.е. язык моделирования специальный язык программирования, облегчающий доведение модели реальной системы до готовой компьютерной программы)  семейство языков программирования, разработанных в Норвегии. Широкую известность и распространение получили языки Симула-1 и Симула-67. Они базируются на Алголе-60 и содержат его в качестве своего подмножества.

Язык Симула-1, появившийся в 1964 году, создан У.Далом и К.Нюгордом. Предназначен для моделирования систем с так называемыми дискретными событиями (например, систем массового обслуживания). Термин моделирование У.Дал определил в 1966 году как "процесс представления динамической системы моделью для получения информации об этой системе путем проведения экспериментов над моделью".

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

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

В 1967-1968 годах авторы Симулы-1 и присоединившийся к ним Б.Мюрхауг создали Симулу-67. Как утверждает Е.Киндлер, данный язык по своей "универсальности" ближе к таким языкам, как Алгол-68 и Ада, чем к языкам моделирования. Однако следует отметить, что все средства Симулы-1 являются частью языка Симула-67 и их можно использовать при помощи так называемого стандартного класса SIMULATION (моделирование).

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

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

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

В 1968 году У.Дал охарактеризовал язык так: "С помощью языка Симула-67 и вместе с ним языки моделирования влияют на основы математики. Язык Симула-67 выходит за традиционные рамки языков программирования и может служить основой, на которой строятся различные математические и естественно-научные теории от геометрии и алгебры до химической технологии и сельского хозяйства, даже в тех случаях, когда речь идет не об имитации и программировании, а лишь о получении количественной информации".

У нас язык Симула-1 был реализован на машинах "Урал-14" и БЭСМ-6, а Симула-67 — на БЭСМ-6, в моделях ЕС ЭВМ, в системах "Эльбрус-1" и "Эльбрус-2".