Справочное руководство по языку Ада-83


Агрегаты - часть 2


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

Примечание.

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

Ссылки:

агрегат записи 4.3.1, агрегат массива 4.3.2, базовая операция типа 3.3.3, выбор 3.7.3, выражение 4.4, дискретный диапазон 3.6, именуемый тип 3.7, индекс 3.6, индексируемый тип 3.6, компонента 3.3, лимитируемый тип 7.4.4, первичное 4.4, простое выражение 4.4, простое имя 4.1, раздел вариантов 3.7.3, составное значение 3.3, составной тип 3.3, тип 3.3.

4.3.1. АГРЕГАТЫ ЗАПИСЕЙ

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

others

в агрегатах записей должен представлять хотя бы одну компоненту. Сопоставление компонент с выбором

others

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

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

При вычислении агрегатов записи порядок вычисления выражений в сопоставлениях компонент в языке не определен. Выражение в именованном сопоставлении вычисляется один раз для каждой сопоставленной компоненты. Производится проверка на принадлежность значения каждой подкомпоненты агрегата подтипу этой подкомпоненты.




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



Книжный магазин