- •1.3.3. Классы
- •1.3.4. Возможность применения в специальных областях
- •2.1. Синтаксис
- •2.2. Семантика ,; V-
- •2.2.1. Подклассы
- •2.2.2. Сочленение . -
- •2.2.3. Виртуальные величины
- •4.3.2.4. Оперативная квалификация «
- •4.3.2.2. Генераторы объектов ,
- •4.3.2.3. Локальный объект
- •7. Дистанционное обращение
- •7.1.2. Семантика
- •10.8.2. Семантика
- •11.3.2. Семантика
- •1 12.1. Последовательности псевдослучайных чисел
- •14.2.1.2. Семантика-
1.3.4. Возможность применения в специальных областях
Язык СИМУЛА-67 может быть модифицирован для при-., менения в специальных областях путем определения подходящего класса, содержащего необходимые для данной области понятия.. Такой класс используется затем в качестве префикса" к программе, составленной для данной области.1 Не специалист в программировании может ограничиться каким-либо специальным языком, построенным на базе языка СИМУЛА-67; он будет пользоваться в таком случае лишь знакомыми ему агрегированными понятиями, употребляя их в качестве составляющих «строительных блоков» своей про--граммы. Ему нет надобности знать полный язык СИМУЛА-67.-В то же время опытный программист'имеет в своем распоряжении общий язык, и он может расширять «специаль-,1-ный язык», включая в него новые, определяемые им самим
ПОНЯТИЯ. • ,'■-.-'-■ .. ,;- ■ •
Например, при моделировании систем с дискретными событиями обычно употребляется понятие «моделируемо системы» («системное время»). Язык СИМУЛА-67 превращается в яз£1к моделирования, поскольку в нем предусмотрен ■
класс SIMULATION (т. е. МОДЕЛИРОВАНИЕ)1). В декларации этого класса: . -; <
class SIMULATION;
begin..:. endj
'определены «ось времени», двунаправленные списки, которые ' ■ могут служить в качестве очередей и реестров, а также класс процесс, придающий своим объектам способность организовывать свои действия в виде активных фаз, упорядоченных в соответствии с «системным временем».
! Пользователь, желающий написать программу моделирования, начинает ее словами
: SIMULATION begin .......
Если же он хочет сам создать специализированный язык моделирования для использования его в своей области, например для анализа' работы механического цеха, то он может надписать:
SIMULATION class МЕХАНИЧЕСКИЙ ЦЕХ; - " begin end ;
Между begin и end он определяет необходимые ему строительные блоки; например;
process class кран;
, . begin \ end;
!•' process class машина;
begin procedure сбор данных;
i -
end;
и т. д.
н .
I Для описанного таким образом класса транслятором составляется программа, после чего каждый раз, когда возникает необходимость воспользоваться СИМУЛОЙ-67 для моделирования механического цеха, можно написать
МЕХАНИЧЕСКИЙ ЦЕХ begin \
■
и включить таким путем в программу понятия МОДЕЛИРО ВАНИЕ и МЕХАНИЧЕСКИЙ ЦЕХ. . ' :_: - ■ Рассмотренные средства специализации языка требуют,
чтобы транслятор имел механизм для включения в
общую программу отдельно скомпилированных классов (см. разд. 15). -
ч
1.3.5. Возможность обработки списков
Когда имеется много объектов, принадлежащих различным классам и сосуществующих как части одной программы, необходимо иметь возможность присваивать имена отдельным объектам, а также связывать объекты друг с другом (например, в бинарные деревья или в списочные структуры других типов). .
Поэтому в язык вводятся величины новых типов — «ссылки». Ссылки «квалифицируются», благодаря чему каждая данная ссылка может указывать (ссылаться) только на те объекты,*-которые принадлежат к классу, упомянутому в квалификации (или к подклассам квалифицирующего класса).
Пример:
* ref (заказ) следующий, предыдущий;
Операция, в результате которой ссылка становится именем некоторого объекта (т. е. обозначает этот объект), записывается при помощи символа:—(читается — обозначает).
Пример: следующий : — new заказ (101); предыдущий : — следующий ;
ИЛИ ;
следующий : — new плита (50);
(что также допустимо, так как плита есть подкласс класса заказ).
На данные, принадлежащие другим объектам, можно ссылаться и ими пользоваться посредством так называемого «дистанционного обращения», обозначаемого специальной точкой «.»
Пример:
U следующий, номер >- предыдущий, номер then ...;
Здесь сравнивается номер заказа по имени следующий с номером заказа по имени предыдущий.
Таким образом специальная точка дает возможность обращаться к отдельным элементам «чужой» (т. е. находящейся не в том объекте, который действует) информации.
«Групповое обращение» достигается посредством «присоединяющих операторов», - ■
Пример:
inspect следующий when плита do begin ..... end;
В операторе между begin и end можно непосредственно обращаться,,ко всем элементам информации, содержащимся в объекте следующий, принадлежащем к классу плита.
В языке СИМУЛА-67 в качестве его части предусматривается системный класс SIMSET, который содержит понятия, связанные с циклическими двунаправленными списками.
1.3.6. Обработка строк
ч
Язык СИМУЛА-67 содержит новый основной тип величин—«литера». Представление литер зависит от конкретной реализации.
Чтобы обеспечить необходимую гибкость при обработке строк, вводится составной тип, называемый «text». Это понятие «текст» тесно связано со средствами ввода — вывода.
1.3.7. Ввод —вывод
\ Серьезным недостатком АЛГОЛА-60 является отсутствие стандартных приемов ввода — вывода и методов для манипулирования строками.-
Поскольку универсальный язык программирования дол-'жен иметь в этих областях большую гибкость, в языке СИМУЛА-67 приемы ввода — вывода определены и составляют 1 часть языка.
1.4. СТАНДАРТИЗАЦИЯ
Для языка универсального программирования крайне важно, чтобы он был однозначно определен и в то же время допускал возможность расширения (под строгим контролем) в будущем. Такой контроль будет осуществляться Группой Стандарта языка СИМУЛА, состоящей из представителей фирм и организаций, ответственных за трансляторы языка СИМУЛА-67. В уставе Группы указаны твердые правила относительно стандартизации и расширения языка в будущем.
Определение языка СИМУЛА, которое должно соблюдаться при любой реализации языка СИМУЛА-67, составляет «Определение Общей Базы языка СИМУЛА-67».
1.5. ОПРЕДЕЛЕНИЕ ЯЗЫКА
- Определение языка, данное в последующих разделах, должно быть дополнено формальным определением языка АЛ-ГОЛ-60 [1]. Синтаксические определения, содержащиеся в
настоящем сообщении, необходимо понимать следующим о - разом: - • ' v - _
Синтаксические понятия, упомянутые, но не определен ные в этом сообщении, относятся к синтаксическим опреде лениям, данным в работе [1]. /■'.■■■ '. ''.•'' ■ '" -.
Определения в этом сообщении-синтаксических поня тий, имеющихся и в работе [1], отменяют данные в ней соот ветствующие определения. , ' : . •' .
.-3) Обозначение вида '-..'* "Л :' ■, ... ..
(АЛГОЛ — некоторое синтаксическое понятие) '.
представляет правую часть синтаксического определения, данного в работе [1J для соответствующего синтаксического понятия.
. 2. ДЕКЛАРАЦИИ КЛАССА1)
