Языки программирования. Практический сравнительный анализ


Языки программирования. Практический сравнительный анализ - стр. 217


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

В-третьих, тип может служить аргументом функций, вычисляющих отдельные значения того же самого или другого типа. Это и есть так называемые АТРИБУТНЫЕ функции. Например, функция "первый" вычисляет наименьшее значение заданного дискретного типа, функция "длина" вычисляет целочисленное значение - длину диапазона заданного дискретного типа. На самом деле аргументом таких функций служит ПОДТИП (ведь тип  - частный случай подтипа). А подтип, как мы видели в примере с процедурой "минус", может быть связан с объявленным объектом. Поэтому в качестве аргумента атрибутной функции может выступать не только тип, но и объект данных, который в таком случае и идентифицирует соответствующий подтип. Так что уже использованные нами функции нигр и вегр считаются атрибутными - их аргументами может быть любой регулярный  подтип. Обозначения всех атрибутных функций предопределены в Аде. Чтобы отличать их от обычных функций (точнее, чтобы объекты высшего порядка - подтипы не оказывались в синтаксической позиции фактических параметров) и применяется специфическая запись вызова атрибутных функций - аргумент-подтип отделяют апострофом.

Еще одна, четвертая возможность использовать тип как аргумент - настройка РОДОВЫХ СЕГМЕНТОВ.

 

4.13. Родовые сегменты

Мы уже отмечали, что тип не может быть динамическим параметром, управляющим исполнением процедур и функций. Иначе был бы невозможен статический контроль типа объектов. Однако статическая концепция прогнозирования-контроля типов не противоречит статической же обработке заготовок пакетов и процедур с тем, чтобы настраивать их (в период трансляции) на конкретные значения так называемых РОДОВЫХ ПАРАМЕТРОВ (СТАТИЧЕСКИХ ПАРАМЕТРОВ).




- Начало -  - Назад -  - Вперед -