Глава 7. ПАКЕТЫ

Содержание

7.1. СТРУКТУРА ПАКЕТА
7.2. СПЕЦИФИКАЦИИ И ОПИСАНИЯ ПАКЕТОВ
7.3. ТЕЛА ПАКЕТОВ
7.4. ОПИСАНИЯ ЛИЧНЫХ ТИПОВ И СУБКОНСТАНТ
7.5. ПРИМЕР ПАКЕТА РАБОТЫ С ТАБЛИЦАМИ
7.6. ПРИМЕР ПАКЕТА ОБРАБОТКИ ТЕКСТОВ

Пакеты — это одна из четырех форм программных модулей, из которых составляются программы. Другие формы — это подпрограммы, задачные модули и настраиваемые модули.

Пакеты допускают спецификацию групп логически связанных понятий. Простейшие формы пакета специфицируют совокупность общих объектов и описаний типов. Вообще пакеты могут использоваться для спецификации групп взаимосвязанных понятий, включающих также подпрограммы, которые могут быть вызваны извне пакета, тогда как действие внутри пакета остается скрытым и защищенным от внешних пользователей.

Ссылки: задачный модуль 9, настраиваемый модуль 12, описание типа 3.3.1, подпрограмма 6, программный модуль 6.

7.1. СТРУКТУРА ПАКЕТА

Пакет обычно представлен двумя частями: спецификацией пакета и телом пакета. Спецификация имеется у каждого пакета, а тело имеют не все пакеты.

описание-пакета ::= спецификация-пакета;спецификация -пакета ::=   package идентификатор is      {основной-элемент-описания}    [private      {основной-элемент-описания)]   end [простое-имя-пакета]тело-пакета ::=   package body простое-имя-пакета is      [раздел - описаний]   [begin      последовательность-операторов   [exception      обработчик-исключения       {обработчик-исключения}]]   end [простое-имя-пакета];

Простое имя в начале тела пакета должно совпадать с идентификатором этого пакета. Аналогично если простое имя помещено в конце спецификации или тела пакета, то оно должно совпадать с идентификатором этого пакета.

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

Примечание. Для простой формы пакета, специфицирующей совокупность объектов и типов, тело не обязательно. Одной из возможностей использования последовательности операторов тела пакета является инициализация таких объектов. Для каждого описания подпрограммы должно существовать соответствующее тело (за исключением подпрограмм, написанных на другом языке, см. 13.9). Если тело программного модуля является следом тела, то для этого программного модуля требуется раздельно компилируемый субмодуль, содержащий соответствующее тело (см. 10.2). Тело не является основным элементом описания и, таким образом, не может присутствовать в спецификации пакета.

Описание пакета — это либо библиотечный пакет (см. 10.2), либо элемент описания внутри другого программного модуля.

Ссылки: библиотечный модуль 10.1, идентификатор 2.3, настраиваемое тело 12.2, обработчик исключения 11.2, объект 3.2, описание задачи 9.1, описание настройки 12.1, описание подпрограммы 6.1, основной элемент описания 3.9, последовательность операторов 5.1, программный модуль 6, простое имя 4.1, раздел описаний 3.8, след тела 10.2, соответствующее тело 3.9, субмодуль 10.2, тело задачи 9.1, тело пакета 7.3, тело подпрограммы 6.3, тип 3.3, элемент описания 3.9.