11.2 конкретизация настраиваемых модулейКонкретизация или настройка ( instantiation) настраиваемых модулей выполняется во время компиляции. При этом создаётся новый модуль с заданными свойствами, которые определяют подставленные фактические параметры. Созданный таким образом модуль аналогичен обычному модулю языка (пакету или подпрограмме) и может использоваться в программе. Количество создаваемых при конкретизации модулей неограничено. Результат конкретизации настраиваемой процедуры есть процедура, настраиваемого пакета - пакет. Конкретизация - копирование текста шаблона. При этом каждый формальный параметр получает фактическое значение. Общий вид конкретизации: | PACKAGE | FUNCTION | PROCEDURE ] Имя IS NEW Имя_Настраиваемого_Модуля [Список _Фактических_Параметров_Настройки]; Здесь Имя - название нового создаваемого при конкретизации модуля. Конкретизация должна выполняться в описательной части программы, подпрограммы, блока и приводит к новому множеству описаний. Фактические параметры при конкретизации задаются как в позиционной форме, так и в именованной . При этом они могут быть: • выражением; • именем переменной; • именем подпрограммы; • именем входа; • именем типа; • именем подтипа; 120 121 Ада 95. Введение в программирование • именем настройки пакета. П Пример конкретизации: package HORSE is new REZ (integer, Vecsum); procedure Sort_Mod is new Sort (N => 20 ; Data => Float; Max => Mf); function Alfa is new Machine; |
| Оглавление| |