Пакеты как средство абстракции данных
Пакет в языке Ада представляет собой конструкцию, которая может использоваться для определения абстрактных данных.
Большинство экспертов рассматривают эту возможность как основной вклад языка Ада в решение задачи разработки программного обеспечения с наименьшими затратами, большей надежностью, гибкостью и верифицируемостью.
Пакет предоставляет возможность связать отчетливо выраженный набор спецификаций для работы со структурой данных (или с классом структур данных) с некоторыми, возможно скрытыми, подробностями реализации.
При использовании пакетов для абстракции данных их можно разделить на два вида: пакеты-преобразователи и пакеты-владельцы.
Пакеты-преобразователи могут использоваться для реализации чисто абстрактных типов данных, а пакеты-владельцы - для реализации более обобщенных видов менеджеров типа.
Более точно это можно охарактеризовать следующим образом:
Пакет-преобразователь (невладелец) может обновлять только те данные, которые были переданы ему через формальные параметры.
Такой пакет не содержит внутри себя информацию о состоянии, относящуюся к этим данным.
Это означает, что пакет не может содержать внутри себя обновляемых данных.
Поскольку пакет-преобразователь "не владеет" никакой информацией о состоянии, каждая выполняемая им операция должна возвращать результат вызвавшей его программе.
Пакет-преобразователь не может "помнить" результаты предыдущих обращений к нему.
Простым примером пакета-преобразователя может служить пакет, который создает комплексные числа, производит операции над комплексными числами или осуществляет обе эти операции.
Пакет-владелец
"чувствителен к истории", поэтому он может "помнить" результаты предыдущих обращений к нему.
Пакет-владелец "владеет" некоторой информацией о состоянии.
Это означает, что пакет содержит внутри себя данные, которые могут быть обновлены в течение жизни этого пакета.
Таким образом, для выполнения операции пакету могут быть переданы данные через его формальные параметры.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий