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

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

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

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

В программной библиотеке простые имена всех библиотечных модулей должны быть различными идентификаторами. Результат компилирования библиотечного модуля состоит в том, чтобы определить (или переопределить) его как модуль программной библиотеки. По правилам видимости каждый библиотечный модуль рассматривается как описание, приведенное непосредственно внутри пакета ВТАМ ОДНО.

Результат компилирования вторичного модуля состоит в том, чтобы определить тело биб. лиотечного модуля или в случае субмодуля соответствующее тело программного модуля, опи. санного внутри другого компилируемого модуля. Тело подпрограммы в качестве компилируемого модуля рассматривается как вторичный модуль в том случае, если программная библиотека уже содержит библиотечный модуль, ко.

торый является подпрограммой с тем же именем. В противном случае оно рассматривается одновременно и как библиотечный модуль, и как соответствующее этому библиотечному модулю тело (т.е. как вторичный модуль). Ст я шмы и ль тат аомпиля ии 415 Компилируемые модули одной компилвции транслируются в заданном порядке. Относяща. яся ко всей компиляции прагма должна помещаться перед первым компилируемым модулем компиляции. Подпрограмма, являющаяся библиотечным модулем, может использоваться в качестве главной программы в традиционном смысле.

Главная программа выполняется так, как будто она вызвана некоторой внешней задачей, средства инициализации этого выполнения языком не предписаны. Реализация может предъявить определенные требования к параметрам и ре. зультату(если он есть) главной программы (эти требования должны быть приведены в прило. жении Р). Каждая реализация должна разрешать задание в качестве главной программы процедуры без параметров. Любая главная программа должна быть подпрограммой — библиотеч.

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

Две библиотечные подпрограммы должны иметь различные простые имена и потому не могут быть совмещены друг с другом. Однако описания переименования могут определить совмещенные имена для таких подпрограмм; кроме того, с библиотечной подпрограммой мож. но совмещать локально описанную подпрограмму. Так как библиотечные модули рассматриваются как описания, приведенные непосредственно в пакете ЗТАМОАЙО, то для библиотечного модуля Е может быть использовано расширенное имя ЗТАМОАВ0.). (если только имя ЗТАМОАВО не скрыто).

Ссылки: библиотечный модуль 10.6, видимость 8.3, должно 1.6, допустимо 1.6, задача 9, знак операции 6.1, идентификатор 2.3, имя 4.3, конкретизация настройки 12.3, локальное описание 8.1, находится непосредственно в 8.1, окружение 10.4, операция 4.5, описание 3.1, описание настройки 12.1, описание пакета 7.1, описание переименования 8.6, описание подпрограммы 6.1, пакет ЗТАМОАЙО 8.6, параметр подпрограммы 6.2, подпрограмма 6, прагма 2.8, программный модуль 6, простое имя 4.1, процедура 6.1, скрытие 8, совмещение 6.6, 8.7, соответствующее тело 10.1.1, спецификатор контекста 10.1.1, тело пакета 7.1, тело подпрограммы 6.3, Указывать 6.1.

10.1.1. СПЕЦИФИКАТОРЫ КОНТЕКСТА. СПЕЦИФИКАТОРЫ СОВМЕСТНОСТИ Для указания библиотечных модулей, имена которых используются в компилируемом модуле, служит спецификатор контекста. спецификатор контекста::= (спецификатор совместности (спецификатор использования)) спецификатор совместности::= ш!Я простое имя модуля (, простое имя модуля); Имена в спецификаторе контекста должны быть простыми именами библиотечных модулей. В спецификаторе совместности допустимы простые имена любых библиотечных модулей. В спецификаторе использования допустимы простые имена только тех библиотечных пакетов, которые указаны в предшествующих спецификаторах совместности данного спецификатора контекста.

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

модулям (если они есть). Библиотечный модуль, упомянутый в спецификаторе совместности, примененном к компилируемому модулю, видим непосредственно внутри этого компилируемого модуля, исключая случаи его скрытия; этот библиотечный модуль видим как описанный непосредственно в пакете ЗТАМОАВО (см. 8.6). Спецификаторы совместности задают зависимости между компилируемыми модулями, т.е, компилируемый модуль зависит от других библиотечных модулей, упомянутых в спецификаторе контекста. Зависимости между модулями учитываются при определении допустимого 418 Раааа 10 порядка компиляции (и перекомпиляции) компилируемых модулей (см.

равд. 10.3), а также при определении допустимого порядка предвыполнения компилируемых модулей (см. равд. 10.5). Примечание. Внутри компилируемого модуля видимы библиотечные модули, упомянутые в спецификаторе совместности (исключая случаи их скрытия), следовательно, они могут ис. пользоваться как соответствующие программные модули. Так, в компилируемом модуле имя библиотечного пакета может быть дано в специфнкаторе использования и служит для фор-. мирования расмиренных имен; библяотечные подпрограммы можно вызывать; можно описать конкретизации библиотечного настраиваемого модуля. Правила для спецнфикаторов совместности дают одинаковый результат как при упоминании имени библиотечного модуля один или несколько раз, в различных спецификаторах совместности, так и внутри заданного спецификатора совместности. Пример !. Главная программа.

Ниже приведен пример главной программы, состоящеи из одного компилируемого модуля — процедуры печати вещественных корней квадратного уравнения. Предполагается, что в программной библиотеке уже содержится предопределенный пакет ТЕХТ 1О и заданныи поль. зоватвлем пакет ЛЕАЛА ОРЕНАТ1ОМЗ (содержащий определения типа ЛЕАЕ и пакетов ВЕАЕ Ю и ЛЕАЛ РОМСТЮМЗ). Такие пакеты могут быть использованы и другими главными про. граммами. итал ТЕХТ Ю. ЯЕА1 ОРЕНАТЮМВ; иве НЕАь ОРЕНАТ10МВ; в~ввали|в ООАОНАТ(С ЕООАТЮМ 1 ° А,В,С,О:НЕАЫ ивв НЕА| Ю, — Обеспечивает прямую видимость ОЕТ и РОТ для НЕАЬ ТЕХТ Ю, — обеспечивает прямую видимость НЕУЧ ММЕ и РОТ для строк НЕАЕ РОМСТ<ОМЗ; — обеспечивает прямую видимость функции ЗОЛТ Ьва|и ОЕТ<А); ОЕТ(8); ОЕТ1С|| 0:= 8*в2 - 4.0*Авс< Я 0 < 0.0 (Ьвв РОтря ввыв у яооы. Х в|ив РОТГНвв| Ноо|в; Х! *11 РОТ((-В - ЗОНТ(0))7<2.0вА))1 РОТЕ Х2 = "); РОТЕ-В в ЗОНТ(О)И2.0*А)); вил В; МЕУУ ОМЕ; виЬ ООАОНАТ|С ЕООАТЮМ; Примечание к примеру.

В спецификаторах совместности компилируемого модуля надо упоминать имена только тех библиотечных подпрограмм или пакетов, видимость которых дей. ствительно необходима внутри модуля. Нет необходимости (и не следует] упоминать имена других библиотечных модулей, используемых внутри модулей, перечисленных в этих специфи. кагорах совместности, кроме тех, которые используются непосредственно в данном компили. руемом модуле. Например, в теле пакета ЛЕАЛ ОРЕНАТЮМЗ могут потребоваться некоторые элементарные операции, определенные в других пакетах. Но эти пакеты не надо упоминать в спецификаторе совместности процедуры ООАОВАТ<С ЕООАТЮМ, так как в ее тепе элементарные операции не вызываются непосредственно.

Ссьикн| библиотечный модуль 10.1, видимость 8.3, вторичный модуль 10.1, главная программа 10.1, должно 1.6, допустимо 1.6, имя 4.1, компилируемый модуль 10.1, настраиваемое тело 12.2, настраиваемый модуль 12.1, непосредственная видимость 8.3, описание пакета 7.1, описание подпрограммы 6.1, пакет 7, пакет ЗТАМОАЯО 9.6, предвыполнение 3.9, программный модуль 6, простое имя 4.1, процедура 6.1, скрытие 8.3, спецификатор использования 8.4, субмодуль 10.2, тело пакета 7.1, тело подпрограммы 6.3, тип З.З, экземпляр 12.3. 10.1.2.

ПРИМЕРЫ КОМПИЛИРУЕМЫХ МОДУЛЕЙ Компилируемый модуль может быть расчленен на несколько компилируемых модулей. На. пример, рассмотрим следующую программу: Ргивввыв РНОСЕВВОН М ВМАИ.; вива|ив|; 20; тОТАь . '|мтеОен:= 0; Ст п мы и льтвт ко»пиля и» 427 рвсзавв 5ТОСК 1 ° 0М!т: сомме:= (ООО; ТАВЬЕ 7 а1тау (1 .. 0М(Т) еу !МТЕОЕВ; рпювйие ЯЕЗТАВТ; спе 5ТОСК; Расваее Ьсеу ЗТОСК Ь рсосвйпе ЙЕЗТАВТ Ь Ьвуп (аг М )п 1 .. ЫМ(Т 1аор ТАВ1.Е(й):= М; впе 1аор; впд; Ьауп ВЕЗТАЙТ; епо ВТОСК; рюасвйиа 0РОАТЕ(Х: (йТЕВЕН) 1 ° нве ЗТОСК; Ьвем ТАВ1.Е(Х) 7= ТАВЬЕ(Х) + ЗМАЬЬ впв 0РОАТЕ; Ьвуп 5ТОск.леЗтАнт; -- лервинициализация ТАВЕЕ епе РВОСЕ850Я; Приведенные ниже три компилируемых модуля определяют программу с результатом, эквивалентным результату предыдущего примера (пунктирные линии между модулами напоминают, что они не обязаны составллть единый текст). ПРимер 2 Несколько компилируемых модулей.

расьаее ЗТОСК Ь ПМ)Т: сапа(ам: 1000; ТАВьЕ 1 мтау (1 .. 0М(Т) Ы )МТЕОЕВ; Рюсввнсе ЙЕ5ТАНТ; апе ЗТОСК; Расвврв Ьаеу ЗТОСК Ь Рюсаенсе ЯЕЗТАЯТ Ь Ьев(п (от М )п 1 ° 0М(Т Ьор ТАВ1.Е(М):= М; еав Ьар; апв; Ьае)п ЯЕЗТАВТ; впе ЗТОСК; нпй ЗТОСК; Рюсайие РВОСЕЗЗОй Ь ЗЬАьь 1 аопемю 1 201 ТОТА1.: \МТЕОЕВ: 0; ргаса1мсе 0РОАТЕ(Х: (МТЕОЕН) Ь нае ЗТОСК; 14-797 Глава 10 418 ТА8ЬЕ(Х): ТАВ1.Е00 е 8МА(Щ еяе 0РОАТЕ; веем Зтбск,йе8тАЙт; — переинициапизация.тАвье аеиг РЙОСЕ880й; Заметим, что в последней версии примера в пакете 8ТОСК невидимы внешние идентификаторы, отличные от предопределенных (в пакете 8ТАНОАЙО).

В частности, в нем не используются идентификаторы ВМА(.'ь и ТОТА(., описанные в процедуре РЯОСЕ880Й; в противном случае пакет ВТОСК нельзя выделить из процедуры РЯОСЕ880Й, как это сделано выше. С другой стороны, процедура РЙОСЕ880Й зависит от пакета 8ТОСК и упоминает его в спецификаторе совместности. Поэтому пакет ВТОСК можно использовать в расширенном имени и спецификаторе использования. Эти три компилируемых модуля могут быть организованы как одна или несколько компиляций. Например, возможно объединение в одной компиляции спецификации и тела пакета в указанном порядке.

Ссылки: видимость 8.3, идентификатор 2.3, компилируемый модуль 10.1, описание 3.1, пакет 7, пакет ВТАНОАЙО 8.6, программа 10, специфнкатор использования 8.4, спецификатор совместности 10.1.1, спецификация пакета 7.1, тело пакета 7.1. 102. СУБМОДУЛИ КОМПИЛИРУЕМЫХ МОДУЛЕЙ Субмодули используются для раздельной компиляции соответствующего тела программно. го модуля, описанного в другом компилируемом модуле. Этот метод разделения программы позволяет разрабатывать программу иерархически. след тела::= Спецификация подпрограммы (в зерага(е; рас)гайе Ьобу простое имя пакета )в зерага(е; (авй Ьобу простое имя задачи !в зерага(е; субмодуль с зерага(е (имя родительского модуля) соответствующее тело Использование следа тела в качестве тела программного модуля (подпрограммы, пакета, задачного модуля или настраиваемого модуля) допускается, только если след тела помещен непосредственно в тепе библиотечного пакета или в разделе описаний некоторого компилируемого модуля.

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

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

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

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