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


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


Это даст нам повод поговорить о РОДОВЫХ параметрах (см. р.13.). С другой стороны, наш пакет рассчитан на последовательное использование процедур "в_очередь" и "из_очереди". Ддругими словами, нельзя обращаться к процедуре "в_очередь", пока не закончит работу процедура "из_очереди" и наоборот (почему?).

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

 

4.12. Типы ка объекты высшего порядка (атрибутные функции)

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

 

4.12.1. Статическая определимость типа

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

 

4.12.2. Почему высшего порядка?

Статическая определимость типа - необходимое условие статического контроля типов (почему?). Но контролировать типы - значит применять к ним "контролирующие" операции (при статическом контроле - в период компиляции)! Так что с точки зрения  потребности в контроле тип следует считать объектом высшего порядка. Аналогия с функциями высшего порядка довольно очевидна. Функция высшего порядка (форма) служит мета-функцией в том смысле, что характеризует связь функций низшего порядка (своих аргументов или результатов).


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