Введение в программирование - Учебное пособие (Корочкин А. В.)

2.4 дополнительные типы

Дополнительные типы предназначены для реализации в языке средств объектно-ориентированного программирования; абстракции данных и процедур, программирования параллельных процессов и ре­шения задачи взаимного исключения.

Защищённый тип ( protected type ) используется для организации синхронизированного доступа к общим переменным с помощью защи­щённых операций. При этом автоматически обеспечивается взаимное исключение.

Задачный тип ( task type ) предназначен для описания объектов, являющихся задачами ( task ), выполнение которых может быть орга­низовано параллельно.

Тэговый тип ( tagged type ) используется в типе запись. Запись, помеченная тэгом, может быть расширена, реализуя динамический по­лиморфизм.

Абстрактный тип ( abstract type) - расширение тэгового типа для случая, когда объекты типа не описываются. С абстрактными типами в языке связано понятие абстрактной подпрограммы.

26

Ада 95. Введение в программирование

27

Глава 2. Типы

 

Тэговые типы, расширенные типы и абстрактные типы обеспечивают в Аде реализацию парадигм объектно-ориентированного программиро­вания.

Приватные (личные) типы ( private type) и ограниченные (лимитированные) типы (limited type) используются в пакетах для аб­страгирования путём введения ограничений на множество допустимых для типа операций. В Аде некоторые типы изначально являются при­ватными, например, задачный тип рассматривается как ограниченный приватный.

Плавающий тип (тип с плавающей запятой):

type  Weight   is   digits 8 range   0.5.. 25.0;

Ссылочный тип:

type  TW   is    access  Weight;

Массивы:

type  Vector   is   array  (1..50)  of   integer;

 

Ш  СОВЕТЫ:

*  Для организации больших структур данных используйте расшире­ние типов;

*   Используйте       все    имеющиеся    в   языке   средства   обьектно-ориентированного программирования.

ИЗМЕНЕНИЯ:

О Записи, защищенные и задачные типы могут быть параметризиро-

ваны с помощью дискриминантов. О Новые типы: protected,    integer modular,  tagged,   abstract.