Вызов процедуры.
Вызов процедуры также представляет собой последовательный оператор. Его упрощенный синтаксис:
\вызов процедуры\::=\имя процедуры\[([\имя параметра =>\] \выражение\
{,[\имя параметра\ => ] \выражение\})];
Здесь \имя процедуры\ - имя ранее определенной процедуры. Связывание формальных и фактических параметров выполняется аналогично как в вызове функции. Выражение - параметр функции - должно давать результат типа, соответствующего имени параметра \имя параметра\. Параметры можно задавать с поименованным или позиционным связыванием. При позиционном связывании параметры-выражения подставляются в порядке, определенном порядком следования имен параметров в определении функции. При поименованном связывании каждое имя, параметра связывается с соответствующим параметром с помощью символов "=>", причем порядок следования параметров может быть произвольным.
В пакете IEEE.Math_Real определена процедура генерации случайных чисел:
procedure UNIFORM(variable SEED1,SEED2:inout POSITIVE; variable X:out real);
Она может быть вызвана со связыванием параметров:
variable s1,s2:natural:=12345;
variable Random:real;
…
UNIFORM(X=> Random, SEED1=>s1,SEED2=>s2);
или без связывания параметров:
UNIFORM(s1,s2, Random);
Вызов процедуры без параметров – это просто написанное ее имя.