Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
04.01.2020
Размер:
2.97 Mб
Скачать

7.1.2 Вызов процедуры

Аналогично, как и при возникновении процессов, список формальных параметров в заголовке процедуры используется для передачи процедуре фактических параметров.

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

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

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

Символ вызова процедуры

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

  • процедура может содержать состояния и, если это имеет место, получать сигналы;

  • процедура может посылать сигналы. Процесс, посылавший сигналы, является тем процессом, который осуществлял вызов процедуры.

Выполняется вызов процедур следующим образом. Создается экземпляр вызванной процедуры. В нем всем формальным параметрам присваиваются значения соответствующих фактических параметров, а некоторые формальные параметры заменяются (всюду в теле процедуры) на соответствующие фактические параметры.

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

В том месте, где стоит вызов процедуры, функционирование вызывающего процесса (процедуры) приостанавливается и запускается функционирование созданного экземпляра, начиная с его стартовой вершины. Т.е. говорят, что управление передается процедуре. Так продолжается до тех пор, пока процедура не перейдет в одну из своих вершин возврата или не выполнит операцию RETURN.

После этого созданный экземпляр процедуры прекращает свое существование и возобновляется функционирование вызывающего процесса с того места, где он было приостановлено. Т.е. говорят, что управление возвращается вызывающему процессу (процедуре).

Хотя созданный экземпляр процедуры прекращает свое существование, результат его работы передается вызывающему процессу («остается» в вызывающем процессе) в качестве значений, присвоенных фактическим переменным.

7.1.3 Диаграмма процедуры

Определение процедуры может находиться только в определении процесса, определении сервиса или определении процедуры.

На SDL/GR определение процедуры изображается с помощью диаграммы процедуры (см. рисунок 1), которая состоит из следующих элементов:

  • необязательного символа кадра;

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

  • необязательной нумерации страниц (помещается в правый верхний угол);

  • символ текста: для случая диаграммы процедуры символы текста могут использоваться для помещения в них спецификаций формальных параметров, данных и определений переменных;

  • ссылок на процедуры: символ процедуры, каждый ив которых содержит имя процедуры, представляющее локальную, отдельно определенную процедуру;

  • диаграммы процедуры: спецификация поведения процедуры в терминах старта, состояний, вводов, выводов и т.д. и ориентированных дуг.

Рисунок 1 – Пример диаграммы процедуры

Соседние файлы в папке ЯМСЭ