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


Типы и подтипы


Тип характеризуется множеством значений и множеством операций.

Существует несколько

классов

типов.

Скалярные

типы — это целые и вещественные типы и типы, определенные перечислением своих значений; значения этих типов не имеют компонент.

Индексируемый

и

именуемый

типы являются составными. Значение составного типа состоит из значений

компонент. Ссылочный

тип — это тип, значения которого обеспечивают доступ к объектам.

Личные

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

задачные

типы. (Личные типы описаны в гл. 7, задачные — .в гл. 9, остальные — в гл. 3.)

Именуемые и личные типы могут иметь специальные компоненты, называемые

дискриминантами,

значения которых различают альтернативные формы значений одного из этих типов. Если личный тип имеет дискриминанты, они известны пользователям типа. Следовательно, личный тип известен только своим именем, своими дискриминантами, если они есть, и соответствующим набором операций.

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

ограничением

(сюда не относятся случаи без ограничения), значение

удовлетворяет

ограничению, если оно удовлетворяет соответствующему условию.

Подтип —

это тип вместе с ограничением; говорят, что значение

принадлежит подтипу,

если оно принадлежит типу и удовлетворяет ограничению; данный тип называется

базовым типом

подтипа. Тип является подтипом самого себя; такой подтип называется

неограниченным;

он соответствует условию, которое не налагает никаких ограничений. Базовым типом является он сам.

Множество операций, определенных над конкретным типом, определено и для любого его подтипа; однако переменной данного подтипа можно присвоить значение только этого подтипа. Дополнительные операции, например квалификация (в квалификационном выражении), неявно определяются описанием подтипа.




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



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