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 ( В ); Ш СОВЕТЫ: * Широко используйте атрибуты типов и обьектов в программе. Ф Получайте информацию о типах с помощью атрибутов типа . * Используйте механизм дискриминантов для для параметризации типов, а также при инициализации обьектов задачного и защищенного типов; |
| Оглавление| |