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

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

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

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

РЬАМЕ компилируется отдельно. верага!е(РЬАХЕ ТКАСКЕК) -- делает доступным окружение, присутствующее -- в следе тела для СКЕАТЕ РЬАХЕ ргосея$пге СКЕАТЕ Р1.АХЕ(1: РЬАМЕ 1МРО; !Вч оп! Р1.АХЕ П)) (в Р: РЬАХЕ; Ьеа!п Р: пеп ТКАСКЕК; АОО(Р, 1О); -- лобавляем самолет Р к множеству активных самолетов -- и возврашаем его внешнее имя !Р Р.

(Х1Т1А Ы ХЕ(1); ехсербоп пЬеп ТАБК1ХО ЕККОК > га!ве !Ь.ЕОА1. Р1.АХЕ; пЬеп ЗТОКАОЕ ЕККОК > га!ве ТОО МАХУ РЬАХЕБ; спи СКЕАТЕ РЬАМЕ; Возникает ряд проблем, если выполнение операции распределения памяти не является взаимоисключаюшим [ВК173) (язык Ада ничего не говорит об этом), так как многочисленные вызовы задачи СКЕАТЕ РЬАХЕ и одновременное выполнение операции петя могут заканчиваться с одинаковыми значениями для возможно различных динамических объектов.

Выход из создавшегося положения заключается в принудительном последовательном размешении новых задач слежения. Последовательное распределение выполняется задачей АЬЬОСАТОК, по запросам на размещение посредством вызова входа. Все вызовы входа образуют очередь и принимаются последовательно по-одному. Для пакета Р1.АХЕ ТКАСКЕК имеются две модификации: Глава 7 1. Задача АЬЬОСЯТОК описывается в теле РЬАХЕ ТКАСКЕК: гавй А1.ЬОСАТОК!в епггу ХЕзчг РЬАХЕ(Р: опг Р1.АХЕ); епб АЬЬОСАТОК; 1ав)г Ьойу АЬЬОСАТОК 1й Ьек)п 1оор Ьек)п -- начало блока аесер1 ХЕ злу РЬАХЕ(Р: оп1 РЬАХЕ) оо Р: пеп ТКАСКЕК; епд ХЕ% Р1.АХЕ; -- за единицу времени допускается только один вызов - - входа, т. е.

память распределяется эффективно ехеербоп п)зеп БТОКАОЕ ЕККОК > ппИ; епй; еЫ!оор; епд АЬ1.0САТОК; Заметим, что оператор принятия вставлен в блок. Как только возникает исключение в операторе принятия, оно также распространяется и на взаимодействующую задачу. Если исключение не было обработано локально в блоке, задача завершается как результат возбуждения исключения. Конечно, АЬЬОСАТОК не должен завершаться при запросе на обработку 513-го самолета. 2. Вызов распределителя памяти в СКЕАТЕ РЬАХЕ заменяется вызовом входа и АЬ ОСАТОК.ХЕ зйу РЬАХЕ(Р); Процедура КЕМОУЕ-РЬАХЕ, завершающая слежение за самолетом, компилируется как " Во время процесса стандартизации в качестве одной из модификаций языка Ада выдвигалось требование распростраиеиия исключения ТАБК1ХО ЕККОК в вызывающую задачу вместо возбуждеиия исключения, если оио появляется во время рандеву.

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

Этот объект содержит след тела процедуры РРРАТЕ РОЯТ10Х: верагаге(Р1.АХЕ ТКАСКЕК) (авЬ )ни)у ТКАСКЕК )в РАТА: Р1.АХЕ 1ХГО; ргосеопге \ЗРРАТЕ РОБ1Т10Х гв верагаге; -- коррекция координат самолета -- производится по скорости самолета, его старым -- координатам и времени, прошедшему с момента -- послелней коррекции Ьеа(п ассерг 1Х1Т1АЫЕЕ(1; РЬАХЕ 1ХГО) оо РАТА: 1; епп 1Х1Т1АЫУ,Е; 1оор ве)есг ассере Р1Е; ех)К ог пЬеп Р1Е'СОЫХТ О > ассер$ ЫРРАТЕ(1: Р1.АХЕ 1ХГО) йо РАТА: 1; епо 13РРАТЕ; ог пЬеп Р1Е'СООХТ О апй ЫРРАТЕ'СООХТ О > ассерг КЕАР(1: оп( РЬАХЕ 11ЧРО) йо 1: РАТА; епо КЕАР; ог ое1ау 1.0; УРРАТЕ РОБ1Т1ОХ; епо ве!есй епй 1оор; еаза ТКАСКЕК; 236 Главе 7 Ниже приведено тело процедуры 1)РРАТЕ РОЯТ1ОХ: пее САЬЕХРАК; яерага!е(РЬАг1Е ТКАСКЕК.ТКАСКЕК) -- именованная компонента используется для того, чтобы — специфицировать модуль, содержащий след тела ргоее$аге 13РРАТЕ РОБ1Т10о1 1а )ч)ЕЪЧ Т1МЕ: Т1МЕ: С1.ОСК; РЕ1.ТА Т1МЕ: Р(ЗКАТ101ч': 1чЕ)Ч Т1МŠ— РАТА.Т; — — * определяет умножение скорости на время для получения расстояния 1апе11оп "'"1РТ: 1Н)КАТ101ч; Ч: М1ЬЕЯ геГагп М!ЬЕБ!а Ьеа)п ге1пгп МЬЬЕБ(РТ) е Ч; епд "е"; Ьефп РАТА.Х: РАТА.Х + РЕЬТА Т1МЕ е РАТА.ЧХ; РАТА.У: РАТА.У + РЕЬТА Т1МЕ е РАТА.ЧУ; РАТА.Е: РАТА.е.

+ РЕЬТА Т1МЕ е РАТА Че,; РАТА.Т: )ч)Е% Т1МЕ; еп4 ЫРРАТЕ Р081Т10)ч'; Реализация АСТ1ЧЕ РЬА1чЕБ предоставляется читателю. Глава 8 Спецификаторы представления и особенности, зависящие от реализации [13] 8.1. Введение Главное преимущество использования языка программирования высокого уровня заключается в возможности создания абстрактных алгоритмов, достаточно независимых от архитектуры машины 1%/1К77а] и от представления типов данных, используемых в реализации.

Тем не менее и особенности архитектуры машины, и используемые представления типов данных оказывают существенное влияние на написание программных систем, таких как драйверы, системы управления процессами 1управляющие системы), обработчики прерываний, распределители памяти и другие программы, где эффективность крайне необходима, т.е. где каждый бит памяти и каждый выполняемый цикл должны использоваться максимально эффективно. Например, драйвер для клавишей пишущей машинки должен иметь доступ к буферу аппаратных средств клавиатуры и влиять на вектор прерывания. Следовательно, язык системного программирования должен иметь средства для манипулирования объектами на двух уровнях: — абстрактном, где важны только логические свойства; — Физическом, который имеет дело с аппаратной частью вычислительной машины и способом представления.

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

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

Физические детали объектов и интерфейс программы с внешним окружением может явно определять программист путем использования специально предназначенных для этих целей возможностей. Если пользователь точно не определяет детали физического уров- Глава В ня, то это обеспечивает компилятор с языка Ада.

Язык Ада позволяет задавать такие спецификации физического уровня деталей, как представление типов данных, интерфейс со средствами аппаратного прерывания, вставка части программы в машинном коде по указанным адресам в памяти, высвобождение памяти и нарушение строгой типизации — все, что необходимо для системного программирования. Следует отметить, что описанные возможности разрушают механизм проверки ошибок в языке, позтому нми следует пользоваться только в случае крайней необходимости и с большой осторожностью, особенно это касается программистов-новичков. Возможности, которыми обладаег язык Ада для связи с аппаратурой, называются специ1йикаторами представления, которые бывают друх типов — специ1еикаторы представления типа н специ(рикаторы адреса.

8.2. Спецификаторы представления типа [13.1 — 13.41 Представления типов данных обычно выбираются компилятором, так как в большинстве случаев программиста удовлетворяет реализация типа данных по умолчанию. В тех редких случаях, когда программист не удовлетворен предложенным компилятором представлением типа данных, у него есть следующие возможности: 1. Программист может управлять выбором компилятора подходящего представления, используя предопределенные прагмы. Например, прагму РАСК можно использовать для указания компилятору, что используемую прн реализации записи или массива память необходимо свести к минимуму. 2. Программист может использовать специЯикатор представления типа для точного определения отображения между типом данных и средствами машины, специфицируя то представление, которое необходимо использовать, например, размер памяти, внутреннее представление перечислимого типа и формат именуемого типа.

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

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

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

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