- •Языки моделирования мсэ
- •Содержание:
- •Синтаксис и семантика в sdl. Ознакомление с бнф и с синтаксическими графами
- •Оборудование
- •7 Теоретическая часть
- •7.1 Назначение языка спецификаций и описаний sdl
- •7.2 Грамматика языка sdl
- •7.3 Синтаксис языка sdl
- •7.4 Нормальная и расширенная формы Бэкуса-Наура
- •8 Практическая часть
- •Составление диаграммы блока
- •Оборудование
- •7 Теоретическая часть
- •7.1 Описание структуры блока sdl
- •Синтаксис
- •7.3 Диаграмма блока
- •7.4 Комментарии и расширение текста
- •8 Практическая часть
- •Составление диаграммы системы
- •Оборудование
- •7 Теоретическая часть
- •7.1 Описание структуры системы sdl
- •Синтаксис
- •Семантика
- •Синтаксис
- •7.3 Диаграмма системы
- •7.4 Комментарии и расширение текста
- •8 Практическая часть
- •Составление диаграммы процесса
- •Оборудование
- •7 Теоретическая часть
- •7.1 Описание динамического поведения системы sdl
- •7.1.1 Процесс
- •7.1.2 Создание и уничтожение процесса
- •8 Практическая часть
- •Составление диаграммы процедуры
- •Оборудование
- •7.1.2 Вызов процедуры
- •7.1.3 Диаграмма процедуры
- •8 Практическая часть
- •Составление матрицы состояние/сигнал
- •Оборудование
- •7.1.2 Матрицы состояний/сигналов
- •8 Практическая часть
- •Ознакомление с языком mml
- •Оборудование
- •7 Теоретическая часть
- •7.1 Язык диалога mml
- •7.2 Язык диалога axe-10
- •8 Практическая часть
- •Разработка программ на языке chill
- •Оборудование
- •7 Теоретическая часть
- •7.2 Основные понятия
- •7.2.1 Значения и их типы
- •7.2.2 Имена объектов программ
- •7.2.5 Оператор присваивания
- •7.2.6 Области памяти с режимом «только для чтения»
- •7.2.7 Выражение
- •7.2.8 Константы
- •7.3 Структура программ
- •7.3.1 Обозримость и время жизни объектов программы
- •7.3.2 Модули
- •7.3.3 Блоки
- •7.3.4 Процедуры
- •7.3.5 Процессы
- •7.4 Пример технологической программы
- •8 Практическая часть
7.1.2 Вызов процедуры
Аналогично, как и при возникновении процессов, список формальных параметров в заголовке процедуры используется для передачи процедуре фактических параметров.
Этот вызов может быть помещен в любом месте перехода в теле вызывающего процесса (или вызывающей процедуры для случая вложенного использования процедуры) в качестве одного из действий, выполняемых во время перехода.
В свою очередь тело вызова процедуры состоит из имени вызываемой процедуры, за которым могут следовать взятые в круглые скобки и отделенные друг от друга запятыми фактические параметры.
Вызов процедуры изображают символом вызова процедуры, содержащего имя процедуры и заключенный в круглые скобки список фактических параметров.
Символ вызова процедуры
Вызов процедуры может находиться всюду, где в диаграмме процесса или процедуры может находиться действие работы. В каком-то смысле на вызов процедуры можно смотреть как на работу, но со следующими исключениями:
-
процедура может содержать состояния и, если это имеет место, получать сигналы;
-
процедура может посылать сигналы. Процесс, посылавший сигналы, является тем процессом, который осуществлял вызов процедуры.
Выполняется вызов процедур следующим образом. Создается экземпляр вызванной процедуры. В нем всем формальным параметрам присваиваются значения соответствующих фактических параметров, а некоторые формальные параметры заменяются (всюду в теле процедуры) на соответствующие фактические параметры.
Создание отдельного экземпляра процедуры для каждого вызова обусловлено тем, что в это же время ту же процедуру может вызвать другой процесс, функционирующий параллельно с данным.
В том месте, где стоит вызов процедуры, функционирование вызывающего процесса (процедуры) приостанавливается и запускается функционирование созданного экземпляра, начиная с его стартовой вершины. Т.е. говорят, что управление передается процедуре. Так продолжается до тех пор, пока процедура не перейдет в одну из своих вершин возврата или не выполнит операцию RETURN.
После этого созданный экземпляр процедуры прекращает свое существование и возобновляется функционирование вызывающего процесса с того места, где он было приостановлено. Т.е. говорят, что управление возвращается вызывающему процессу (процедуре).
Хотя созданный экземпляр процедуры прекращает свое существование, результат его работы передается вызывающему процессу («остается» в вызывающем процессе) в качестве значений, присвоенных фактическим переменным.
7.1.3 Диаграмма процедуры
Определение процедуры может находиться только в определении процесса, определении сервиса или определении процедуры.
На SDL/GR определение процедуры изображается с помощью диаграммы процедуры (см. рисунок 1), которая состоит из следующих элементов:
-
необязательного символа кадра;
-
заголовка процедуры: ключевое слово PROCEDURE, за которым следует имя процедуры и спецификация формальных параметров процедуры. Заголовок процедуры помещают в верхний левый угол кадра или, если символ кадра не используется, то в левый верхний угол того носителя, на котором изображается диаграмма;
-
необязательной нумерации страниц (помещается в правый верхний угол);
-
символ текста: для случая диаграммы процедуры символы текста могут использоваться для помещения в них спецификаций формальных параметров, данных и определений переменных;
-
ссылок на процедуры: символ процедуры, каждый ив которых содержит имя процедуры, представляющее локальную, отдельно определенную процедуру;
-
диаграммы процедуры: спецификация поведения процедуры в терминах старта, состояний, вводов, выводов и т.д. и ориентированных дуг.
Рисунок 1 – Пример диаграммы процедуры