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

2.1 атрибуты и дискриминанты

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

Атрибут определяет базовую операцию над понятием, задаваемым префиксом:

атрибут : = префикс 'обозначение_атрибу'та;

Определённые в языке атрибуты для каждого типа задают характе­ристики, которые можно использовать в программе. Например, грани­цы диапазонов массивов, начальный и конечный индексы, адреса пере­менных в памяти, точность типа, минимальные и максимальные значе­ния, состояние задачи и пр. Атрибуты типов будут детально рассмот­рены при описании предопределённых типов и типов, создаваемых пользователем.

Integer'Last

Float-Digits

Fixed'Delta

Vector'First

PROC.Rez'Count

П Пример атрибутов:

- -            наибольшее значение типа Integer

- -            точность типа Float

- -            величина ошибки в описании типа Fixed

- -            нижняя граница индекса массива Vector

- -            число вызовов входа Rez в задаче PROC.

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

Для сложных типов в языке введена параметризация типа с помощью специальной компоненты - дискриминанта. Дискриминант может быть либо дискретного типа либо ссылочного типа. Он используется для управления размером или структурой объекта. Для объектов защищён­ного и задачного типов дискриминант может быть использован для инициализации.

П Пример использования дискриминанта:

- - дискриминант в записи

 

Pos: Stack_Size;

- - независимая от дискриминанта

- - компонента

- -  зависимая компонента

Val: String (1..Size); end   record;

A :    Stack (400 );               - -  значение дискриминанта 400 D :    Stack ;    - - значение дискриминанта задано по умолчанию

- - дискриминант в заданном типе

task    type   Rose ( Name :   Character) ;

ТА :   Rose (A ); ТВ :   Rose ( В );

Ш СОВЕТЫ:

*   Широко используйте атрибуты типов и обьектов в программе. Ф   Получайте информацию о типах с помощью атрибутов типа .

*   Используйте механизм дискриминантов для для параметризации типов, а также при    инициализации обьектов задачного и защи­щенного типов;