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

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

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

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

Например, к функциям, названным ЕМРТУ, связанным с пакетами БЕТ 1 и БЕТ 2, можно обращаться как БЕТ 1.ЕМРТУ и ЯЕТ 2.ЕМРТУ Много экземпляров объектов, реализуемых пакетом, можно получить, используя либо настраиваемый пакет без параметров„либо лимнтируемые личные типы. В чем различие этих двух подходов? Решение этой задачи предлагается читателю в качестве упражнения.

Указание: проанализировать правила видимости и обращения к операциям в этих двух случаях. 6.6. Правила сопоставления для формальных параметров настройки [12.3.Ц Сопоставление формальных параметров настройки н соответствующих фактических параметров при конкретизации настраиваемой подпрограммы или пакета должно подчиняться правилам, описанным ниже. 1.

Обычные параметры. Типы фактических параметров настройки должны соответствовать типу формального параметра настройки и удовлетворять всем наложенным ограничениям. 2. Формальные личные типы. Формальный личный тип сопоставляется с любым фактическим типом, удовлетворяющим следующим условиям. Если формальный личный тип а) является лимитнруемым личным типом, то ему может быть сопоставлен любой тип, включая заданный тип; б) не является лимитируемым личным типом, то ему может быть сопоставлен любой фактический тип, над которым определены операции равенства, неравенства и присваивания; в) имеет дискримннанты, то они должны согласовываться с дискрнмннантами фактического типа. 3. Формальные скалярные типы.

Формальному скалярному типу, специфицированному как а) (< >), сопоставляется любой дискретный тип; б) гапйе < >, сопоставляется любой целый тип; в) д)яив < >, сопоставляется любой тип с плавающей точкой; г) деНа < >, сопоставляется любой тип с фиксированной точкой. Наст аиваватыв аю аи 4. Формальные индексируемые типы. Тип фактического параметра должен иметь столько же индексов, сколько и настраиваемый формальный тип. Кроме того, после замены любого настраиваемого типа в формальном индексируемом типе на соответствующий фактический тип индексируемые типы должны иметь одни и те же компоненты и типы индексов (в том же порядке) и одинаковые ограничения.

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

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

6.7. Примеры Первый пример — это настраиваемый пакет, который можно использовать для создания стеков любого размера и с любым типом элементов. Затем следует настраиваемая процедура сортировки, которую можно использовать для сортировки массивов любого типа, скажем, записей служащих, используя операцию сравнения, определенную для этого типа. В языке программирования Ада в отличие от многих языков, таких как, например, Паскаль и Алгол-60, подпрограммы нельзя передавать в качестве обычных параметров. Настраиваемые модули позволяют осуществить передачу подпрограмм как параметров. Это показано на примере вычисления интеграла.

Следующий пример является настраиваемым пакетом, который можно использовать для создания множества с различными типами элементов. Последние два примера показывают, как настраиваемые модули можно использовать для реализации некоторых классов операторов, таких как операции над массивами и функции МАРЫБТ языка Лисп. 6.7.1.

Спй.ки Задача состоит в том, чтобы реализовать настраиваемый пакет для стека, который можно использовать для создания стеков различных размеров и с различными типами элементов. Спецификация такого пакета БТАСК О, приведенная ранее, воспроизводится здесь еще раз: 210 Глава В пепе г1с Я12Е: РОЯ1Т1ЧЕ; гуре ЕЬЕМ )а рпгаге; раеЬапе ЯТАСК 0 Ь ргосейиге Р()ЯН(Е: Ьг Е1.ВМ); ргосеопге РОР(Е: овг Б1.ЕМ); ЯТАСК ОЧЕКРЬОЪУ, ЯТАСК ИХОЕКРЬОзЧ: ехсер(1ов; еги1 ЯТАСК 0; Тело настраиваемого пакета БТАСК 0 приводится ниже: расЬапе )ни1у ЯТАСК 0 (я БРАСЕ: апау(Ь.Я1ЕБ) оу Б1.ЕМ; — Б1г,Е и ЕЬЕМ формальные параметры настройки 1ХОЕХ: 1ХТЕОЕК гавпе О..Я1ЕБ: О; ргоса)пге Р()ЯН(В: 1в БЬЕМ) )а Ьев(п 11 1ХОЕХ Я1ЕБ (Ьев капе ЯТАСК ОЧЕКРЬ0%; епп 1Б 1ХОЕХ: 1ХОЕХ + 1; БРАСЕ(1ХОЕХ): Е; евй РЫЯН; ргосеввге РОР(Е: овг Б1.ЕМ) 1в Ьефа 11 1ХОЕХ 0 ГЬев гаво ЯТАСК (ЗХОЕКРЬОЧг'; епо!1; Б: БРАСЕ(1ХОБХ); 1ХОЕХ: 1ХОБХ вЂ” 1; еЫ РОР; евй ЯТАСК 0; Любые исключения, возбуждаемые при вызове Р(ЗБН и РОР, распространяются на вызывающую процедуру.

По виду тела БТАСК-0 (и игнорируя комментарии) невозможно сказать, является ли тело БТАСК 0 обычным или настраиваемым пакетом. 6.7.2. Настраиваемая процедура сортировки Процедура сортировки вставками, приведенная в гл. 1, модифицируется здесь таким образом, чтобы сделать ее настраиваемой. Спецификация настраиваемого варианта 1ХБЕКТ10Х БОКТ 0 следующая: яепепс 1уре Е1.ЕМ 1я рпгаге; гуре ЧЕСТОК 1а аггауНХТЕОЕК ганне ()) оу Е1.ЕМ; г!з Наст ливлемые мо ли в41Ь 1аасг!оа ">" (А, В: !а Е1.ЕМ) гегагп В001.ЕАХ 1в < >; — если операция сравнения > для элементов типа Е1.ЕМ вЂ” - отсутствует, то она должна присутствовать в -- контексте конкретизации ргосеоаге 1ХБЕКТ1ОХ БОКТ б(А: !и оп! ЧЕСТОК); Настраиваемую процедуру 1ХБЕКТ10Х ЯОКТ б можно использовать при конкретизации процедур, которые сортируют массивы только с целыми индексами.

Это ограничение можно снять, если использовать параметр настройки для типа индексов массива, как это показано в спецификации процедуры бЕХЕКА1. 1ХБЕКТ1ОХ БОКТ б: аеаег!с гуре Е1,ЕМ 1в рпчаге; !уре 1Х(УЕХ !в (< >); -- любой дискретный тип Гуре ЧЕСТОК !в апчгу(1ХРЕХ) о1 ЕЬЕМ; чч!(Ь Йесг!оп "> "(А, В: 1а Е1.ЕМ) ге(агп В001.ЕАХ 1в < >; ргоееоаге ОЕХЕКАЫХБЕКТ1ОХ БОКТ б(А: !и оаг ЧЕСТОК); Хотя информацию, которую несет третий параметр, можно получить из первых двух, тем не менее накладываемые на типы условия требуют присутствия этого третьего параметра.

Тело 1ХБЕКТ10Х БОКТ б имеет вид ргоееаа е 1ХБЕКТ10Х БОКТ б(А: !а оаг ЧЕСТОК) !в 1, ): А КАХОЕ; Т: ЕЬЕМ; -- тнп временной переменной Т является -- формальным типом настройки Е1.ЕМ Ь: 1ХТЕОЕК: А'Р1КБТ; Ю 1ХТЕОЕК: А'1.АБТ; Ьей!а 1: 1.; ччЬВе 1 / Ы !оор Т: А(1+1); ,): 1+1; ччЬВе ) / 1. аао гЬеа АО-!) > Т !оор АО): АО-1); э: з-1; еао !оор; А(У): Т; 1: 1+1; еао !вор; еао ЬХБЕКТ1ОХ БОКТ б; 212 Гиаве в Предположим, что при конкретизации имеют силу следующие описания: гуре ВООЬЕАХ АККАУ (а апау(1ХТЕОЕК ганне ( >) оу ВООЬЕАХ; Фуре ЕМРЬОУЕЕ 1в гесогЬ ХАМЕ: ЗТК1ХО(1..40); 1Еч 1ХТЕОЕК; епЬ КЕСОК1); гуре ЕМРЬОУЕЕ АККАУ 1а аггау(1ХТЕОЕК ганне с >) о1 ЕМР1.ОУЕЕ; йвсбоп "> "(А, В: ш ЕМРЬОУЕЕ) гегигп ВООЬЕАХ 1в йей1п гении А.11) > В.10; епЬ ">"; Сортировка для массивов с элементами типа ВОО1.ЕАХ и ЕМР1 ОУЕЕ конкретизируется следующим образом: ргосеЬнге ВООЬЕАХ ЯОКТ 1в пезг!ХБЕКТ10Х ЗОКТ б(ЕЬЕМ > ВООЬЕАХ, ЧЕСТОК > ВООЬЕАХ АККАУ, "»" ">"); -- формальный параметр настройки, представляющий — операцию «больше чем», имеет одно и то же имя с — фактическим параметром настройки, т.

е. символом > ргосеЬиге ЕМРЬОУЕЕ ЯОКТ 1в пеп 1ХБЕКТ1ОХ БОКТ б(ЕЬЕМ > ЕМРЬОУЕЕ, ЧЕСТОК > ЕМРЬОУЕЕ АККАУ, "»" ">") Если операция сравнения не была задана при конкретизации ВООЬЕАХ БОКТ: ргосеЬиге ВООЬЕАХ БОКТ 1в пезг 1ХБЕКТ1ОХ ВОКТ б(ЕЬЕМ > ВООЬЕАХ, ЧЕСТОК > ВООЬЕАХ АККАУ); то по умолчанию будет использоваться операция сравнения из контекста конкретизации, если она существует.

В противном случае подобная конкретизация приведет к ошибке времени компиляции. В приведенной выше настройке ЕМР1.ОУЕЕ БОКТ для параметров используется именная нотация. Однако здесь можно было бы также использовать и позиционную нотацию. Например, ргосеЬнге ЕМРЬОУЕЕ БОКТ!я пен 1ХБЕКТ1ОХ БОКТ б(ЕМРЬОУЕЕ, ЕМР1.ОУЕЕ АККАУ, ">"); Функпия с двумя формальными параметрами и идентификатором в качестве имени вместо символа операции также может быть фактическим параметром Няег яивяемме мо ии 213 настройки для соответствующего формального параметра, являющегося опера- цией.

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

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

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

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