Главная » Просмотр файлов » Н. Джехани - Язык Ада (1988)

Н. Джехани - Язык Ада (1988) (1160771), страница 21

Файл №1160771 Н. Джехани - Язык Ада (1988) (Н. Джехани - Язык Ада (1988)) 21 страницаН. Джехани - Язык Ада (1988) (1160771) страница 212019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

Альтернативно могут быть заданы след тела или прагма 1[к]ТЕКРАСЕ. В спецификации пакета могут появляться два типа объявлений. Первый тип составляет видимую часть пакета. Объекты, объявленные здесь, доступны с использованием нотации именованных компонент (т. е.

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

Это ограничение на видимость вместе с ограничением, предусмотренным в личной части спецификации пакета, поддерживает скрытие информации, поддерживаемое пакетами. Приведем теперь несколько примеров спецификаций пакетов. Первый пример представляет собой пакет Р1 ОП!]ч]О РАТА, который состоит только из набора обычных переменных и не имеет соответствующего тела пакета [РОР83]. рас]гайе Р] ОТТ![ч]О РАТА ]к РЕ]ч[ (]Р: ВОО(.ЕА[ч[; СО[ч[ЧЕКЯ]0]х[ РАСТОК, Х ОРР8ЕТ, У ОРРЯЕТ, Х М]]к[, Х МАХ, У М1]ч[, У МАХ: НОАТ; Х ЧАШЕ: аггау (1..500) оу НОАТ; У ЧАШЕ: аггау (1..500) о1' Н.ОАТ; епй Р[.ОП!]к[О РАТА; Эти объявления могут быть использованы в более чем одной подпрограмме".

Второй пример представляет пакет ОКРЕКЕР ЯЕТ, который реализует множество, чьи элементы упорядочиваются в соответствии со связанной с ними величиной времени. Элементы имеют дискретный тип ]Р, а значения времени— предопределенный тип Р(ЗКАТ10]ч[. Элементы идентифицируют работы, а значение времени представляет время выполнения работы в секундах. Тип 1Р определен как гуре 1Р Ь ганйе 1..100; и это описание непосредственно видимо в контексте, в котором описан пакет ОКРЕКЕР ЯЕТ. Спецификация пакета ОКРЕКЕР ЯЕТ следующая: " Использование этих описаний данных параллельными процессами, так называемыми задачами, будет создавать проблему параллельного обновления [Вк!73], если этому не уделено предельное внимание.

4-797 Глава 3 98 раскайе ОК))ЕЛО ЯЕТ 1в ргосепвге 1ХБЕКТ(ЮВ: !п 1Р; Т: 1п 1НЗКАТ1ОХ); — добавить работу ЮВ к множеству; — ЮВ представляет собой работу, которая — требует Т секунд времени выполнения ргосейвге БМАЬЬЕБТ(ЗОВ: овг 1Р); — запомнить в 1ОВ ту работу, которая — представляет собой работу из упорядоченного — множества с наименьшим — временем выполнения; эта работа — удаляется из набора; процедура — ЯМАЬЬЕЯТ будет вызвана в случае, — если множество не пусто. — ЯМАЬЬЕБТ не реализована в виде — функции, так как она имеет — побочный эффект — уничтожение — элементов. Функции не должны — иметь никаких побочных — эффектов. — Функция должна всегда возвращать — одинаковое значение, -- если она вызывается с одинаковыми — действительными — параметрами.

— Эти соглашения соответствуют — математическому смыслу — функции. 1впс11оп ЕМРТг' геГпгп ВООЬЕАХ; епй ОК1ЭЕКЕВ БЕТ; Описания, заданные в спецификации пакета, видимы вне пакета в данной точке программы, только если имя пакета является видимым в этом месте. Идентификаторы в видимой части спецификации пакета могут указываться с использованием нотации именованных компонент — перед именем элемента ставятся имя пакета и точка.

Например, ОКзэЕКЕ1э БЕТ.ЕМРТ г' Элементы можно сделать непосредственно видимыми посредством спецификатора использования. Если встретился сдецификатор взе: пзе ОКОЕКЕ1Э ЯЕТ; то функцию ЕМРТг' можно вызвать непосредственно как ЕМРТ г' прн условии, что никакой другой логической функции без параметров с этим же именем не существует; в этом случае ЕМРТ'г' — это обращение к описанной в пакете функции. Аналогично если два одинаковых идентификатора сделать видимыми с помощью фразы использования, то в результате можно получить двусмысленность. Для того чтобы избежать двусмысленности, эти идентификаторы должны быть квалифицированы.

Паквты 3.3. Тела пакетов (7.3] Тело пакета имеет форму расйайе Ьойу идентификатор В описания (Ьея)п последовательность операторов (ехсерйоп обработка исключенийЦ епй идентификатор; Тело пакета представляет собой реализацию пакета. Оно содержит локальные описания и тела подпрограмм, пакетов и задач, спецификации которых были заданы в спецификации пакета. Все элементы, описанные в спецификации пакета, являются видимыми в соответствующем теле пакета. Однако реализация этих элементов, заданная в теле пакета, является невидимой вне его. Элементы, описанные локально в теле пакета, аналогично невидимы вне тела пакета. Тело пакета может также содержать последовательность операторов, которые выполняются в момент выполнения тела пакета. Эти операторы могут использоваться для инициализации объектов, описанных в спецификации и теле пакета. Исключительные ситуации, возбуждаемые во время выполнения операторов„обрабатываются с помощью обработчика исключительных ситуаций, заданного в теле пакета.

Если обработчик исключительных ситуаций не предусмотрен в теле пакета, тогда при возникновении исключительной ситуации она распространяется на ту часть программы, которая содержит тело пакета (это будет обсуждено в гп. 5). В качестве примера опишем тело пакета ОКРЕКЕР БЕТ, который реализует определенное ранее упорядоченное множество. Он использует массив 1Х БЕТ с компонентами типа ВООЬЕАХ для указания работ, которые присутствуют во множестве, а также массив КАИК, содержащий их времена выполнения. Значение 1Х БЕТ(1) есть ТЮЗЕ, если работа 1 представлена во множестве, и РАЬБЕ в противном случае.

Значение КАХК(1) содержит время выполнения, связанное с работой 1 (когда она присутствует во множестве). Множество пусто, когда значения всех элементов массива 1Х БЕТ есть РАЬЯЕ. Когда множество не пусто, определяется работа БМАЬЬ с наименьшим временем выполнения, и она удаляется из множества по следующему алгоритму: Т:= максимально возможное время выполнения; !ог всех работ 1 во множестве !пор Сделать ЯМАЬЬ работой 1, если ее время выполнения КАХК(1) < Т; в этом случае сделать Т равной КАХК(1).

епп 1оор Удалить БМАЬЬ из множества Элементы, представленные во множестве, не могут быть непосредственно созданы, как показано в приведенном заголовке цикла. Все элементы, которые могут быть во множестве, должны быть созданы, а те, которые реально не представлены во множестве, должны быть отсеяны с помошью явной проверки в те- Глава 3 ле цикла. Следовательно, алгоритм для нахождения наименьшей работы усовершенствуется следующим образом: 1ог всех работ 1, которые могут быть во множестве !оор Сделать ЯМАЬЬ работой 1, если она есть во множестве и если ее время выполнения КАХК(1) < Т; в этом случае Т сделать равным КАХК(1). епг! !оор Пакет ОК)зЕКЕП ЯЕТ реализуется в виде — тип 1О доступен в данном окружении рас)саке Ьог!у ОКВЕКЕО ЯЕТ !и 1Х БЕТ: аггау (11)) о1 ВООЬЕАХ:= (Ю = ) РАЬЯЕ); — сначала множество пусто КАХК: аггау (11)) о1 1И)КАТ1ОХ; ргосег!пге !СЕКТ(ЮВ: !п 1О; Т: !п 1Н)КАТ1ОХ) !з — если элемент представлен во множестве, то — его добавление к множеству — не будет иметь эффекта, как и — в случае множества в математике Ьей!п 1Х БЕТ(ЮВ): = ТК(ЗЕ; КАХК()ОВ): = Т; епд 1ХЯЕКТ; ргоееонге БМАЬЬЕЯТ()ОВ: оп! !О) !з — БМАЬЬЕБТ должна быть вызвана, — если множество не пусто Т: 1Н)КАТ1ОХ:= 1НЗКАТ1ОХ'ЬАЯТ; ЯМАЬЬ: 1О; Ьеа!п 1ог 1 !п 11Э 1оор — поиск работы с наименьшим рангом !1 1Х БЕТ(1) апд гйеп КАХК(1) <= Т ()геп БМАЬЬ:= 1; Т:= КАХК(1); епг! !1.„ епд !оор; 1Х ЯЕТ(ЯМАЬЬ): = РАЬВЕ; — удаление работы — из множества ЮВ:= ЯМАЬЬ„ епо БМАЬЬЕВТ; 1ппсбоп ЕМРТУ гегпгп ВООЬЕАХ !в Ьеа!п уог 1 )п 1Р !оор !1 1Х БЕТ(1) !!геп ге!пгп РАЬЯЕ; епд № епй !оор; ге!игл ТКЫЕ; епд ЕМРТг'; епд ОК(ЗЕКЕ1) ЯЕТ; Пакеты В качестве задания для читателя предлагается изменить тело пакета, используя упорядоченные списки для хранения элементов множества".

3.4. Личные типы !7.41 Детали реализации типов, объявленных в спецификации пакета, могут быть скрыты от пользователя пакета при помощи описаний типов, являющихся личными. Тип описывается как личный путем указания либо атрибута рпча!е (личный), либо атрибута 1!т!!ег! рича!е (лимитируемый личный).

Лимитируемый личный тип также называется лимитируемым типом. Личный тип описывается с использованием описания личного тина, задаваемого в вщгимой части спецификации пакета, например !уре ЯЕТ 1я рпча!е; !уре Ок!) ВЕТ !я Ипн!ей рг!ча!е; !уре (Н)Е!)Е !я 1!т!!ей рпча!е; Полное описание типа задается позднее в личной части спецификации пакета вместо тела пакета. Полное описание типа задается в самой спецификации пакета для гарантии того, что спецификация содержит достаточно информации для компиляции единиц, использующих пакет. Объекты личных типов могут быть описаны, переданы как параметры, проверены на равенство и неравенство и им могут быть присвоены значения других объектов такого же типа.

Объекты лимитируемого личного типа, однако, могут быть только описаны и переданы как параметры. Описание личного типа и соответствующее полное описание типа часто представляют собой две различные точки зрения на личный тип, одна из которых — взгляд извне, а другая — изнутри пакета. Вие пакета, в котором определен личный тип, объекты этого личного типа можно использовать только ограниченным образом; с другой стороны, внутри этого пакета объекты личного типа подобны объектам любых обычных (т.

е. не личных) типов. Константы личного типа могут быть описаны в видимой части пакета, но их значения должны быть заданы только в личной части с использованием пол- " Когда максимальная мощность множества станет намного больше, чем его мощность лля любого заданного времени, тогда более эффективным будет использование списочного представления лля множества, чем представление в виде массива с элементами типа ВООьЕАН. Память, используемая при списочном представлении множества, пропорциональна числу элементов в множестве н она отводится и освобождается во время добавления и удаления элемента из множества. При представлении в виде логического массива память для всех возможных элементов должна быть отведена независимо от того, представлен ли элемент во множестве или иет. Операции над множеством, такие как добавление, уничтожение и проверка на принадлежность к элементам множества, происходят быстрее, когда используется представление в виде массива с элементами типа ВООЬЕАН, причем их скорость не зависит от мощности множества.

Характеристики

Тип файла
DJVU-файл
Размер
4,41 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее