СИМУЛА
— семейство языков программирования; разработаны эти языки в Норвежском вычисл. центре. Широкую известность и распространение получили языки СИМУЛА-1 и СИМУЛА-67. Оба языка базируются на языке АЛГОЛ-60 и полностью включают последний.
С.-1 - универсальный язык моделирования систем с дискретными событиями. Разработан 1964. Фундаментальным понятием его является процесс. С помощью процессов описывается последовательность действий; процессы могут выступать и в качестве пассивных объектов. Действия и взаимодействие процессов полностью описывают систему с дискретными событиями. Описание класса процессов оформляется в виде описания деятельности, синтаксис которого близок к синтаксису описания процедуры. Процессы динамически порождаются (в результате вычисления порождающих выражений — указателей процессов) и покидают систему (при отсутствии ссылок). Все ссылки на отдельный процесс осуществляются посредством стандартной ссылки, называемой элементом. В связи с этим введено понятие типа «элемент» и элементные выражения (переменные, указатели ф-ций, порождающие выражения), значения которых суть элементы. На процесс могут указывать несколько элементов. Исполнение процесса может состоять из нескольких активных фаз (событий). Время системы дискретно: в ходе выполнения одной активной фазы оно остается постоянным. Последовательностью выполнения событий управляют спец. управляющие операторы. Один процесс может получать доступ к данным другого процесса в результате выполнения т. н. операторов присоединения. В С.-1 введены в качестве стандартных некоторые
процедуры случайной выборки и статистического анализа.
С.-67 - универсальный язык программирования. Разработан в 1967—68. В С.-67 введено понятие объекта, аналогичное понятию процесса в С.-1. Объекты вводятся путем описания класса, задающего правило действий объектов и состав данных, носителями которых являются объекты. Идентификатор описанного класса может использоваться в качестве префикса для описания другого класса. Объект, порождаемый от класса с префиксом, наз. составным; он обладает свойствами обоих классов. Иерархия описаний классов с префиксами не ограничена. Префиксами могут снабжаться и блоки. Объекты порождаются в результате вычисления спец. порождающих выражений. Базовый набор операторов, управляющих последовательностью работы объектов, довольно прост: основными являются операторы ОТКРЕПИТЬ и ВОЗОБНОВИТЬ, Кроме типов АЛГОЛ-60, для переменных, массивов и функций в язык введены типы: ссылка на объект данного класса, символьный и текстовой. Набор стандартных операций-функций позволяет производить необходимые элементарные преобразования текстов. В С.-67 определены операторы присоединения, аналогичные С.-1.
Кроме того, один объект может получить доступ к данным другого объекта с помощью т. н. дальнобойных идентификаторов. Вводя описания различных классов, используемых в качестве префиксов перед описаниями других классов или перед блоками, можно расширять возможности и изобразительные средства языка. Несколько классов введены в С.-67 как стандартные. Среди них класс МОДЕЛИРОВАНИЕ соответствует всем средствам моделирования С.-1, классы ВВОД и ВЫВОД дают удобные средства описания работы с внешними устройствами. Языки С. широко используют при решении инженерных, экономических, военных и др. задач.
Лит.: Дал О. И., Нигард К.
СИМУЛА - язык для программирования и описания систем с дискретными событиями. «Алгоритмы и алгоритмические языки», 1967, в. 2; Далу. И., Мюрхауг Б., Нюгорд К. СИМУЛА-67 универсальный язык программирования. Пер. с англ. М., 1969 [библиогр. с. 95]. И. В. Клокачев.