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

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

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

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

Изменения представления выполняются посредством явных преобразований типа. Например, первый из следующих операторов распаковывает объект Р типа РАСКЕ0 0ЕБСК1РТОК в объект 0 типа 0ЕБСК1РТОК, а второй оператор осуществляет упаковку объекта 0 обратно в объект Р. 0: 0ЕБСК1РТОК(Р); -- распаковка Р: РАСКЕ0 0ЕБСК1РТОК(0); — упаковка 8.5. Особенности, зависящие от конфигурации, и константы 113.71 Язык программирования Ада позволяет программисту специфицировать в программе особенности, зависящие от конфигурации, чтобы помочь Ада-ком- пилятору использовать зти особенности во время генерации кода и в то же время не нарушить наложенные ими ограничения.

Можно специфицировать такие зави- сящие от конфигурации особенности, как: 1) модель машины и ее производителя, 2) операционную систему, 3) объем доступной памяти, 4) выбор специальной аппаратуры. Эти особенности специфицируются посредством зависящих от реализации прагм. Некоторые примеры приведены ниже: ргарва БУБТЕМ ХАМЕ(ь)Х1Х); ргаязва БТОКАОЕ $ЛЧ1Т(32); ргаяаза МЕМОР Б1л.Е(262144); ргаяаза МАСН1ХЕ ХАМЕ(ЧАХ11 780); н доступ к компонентам массива в упакованном виде осушествляется очень медленно, так как различные компоненты массива могут быть упакованы в одни и тот же квант памяти (т.е, машинное слово). Например, изменение значения, которое не занимает адресуемый квант памяти, может потре- бовать извлечения из памяти кванта, содержашего изменяемую величину, запоминания этого блока, извлечения из него изменяемой величины и, наконец, преобразования изменяемого значения в упако- ванную форму.

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

Это иллюстрируется следующим фрагментом программы: саве БУДЕМ.ЗУВТЕМ ХАМЕ !и хг!аеп ЫХ1Х > код с с(зответствующими вызовами программ для системы ЫХ!Х яг)аеп М!)ЬТ1СВ > кол с соответствующими вызовами программ для системы МЫЬТ!СЯ ппеп ЧБ 370 > код с соответствующими вызовами программ для системы Чб 370 епй сам; Рассмотренный выше оператор выбора может условно компилироваться (т.е. выполняться во время компиляции), но это уже предоставлено Ада-компилятору. 8.6. Включение машинного кода [13.81 и В каждой реализации имеется предопределенный пакет оуБТЕМ (пакет системы программироаання), солержагций зааисяглие от конфигурации характеристики. — Прим. дед.

В языке Ада предусмотрена возможность включения машинного кода непосредственно в программу. Включение команд машинного кода часто вызывает многочисленные трудности и ошибки, и потому использовать данную возможность следует как можно реже. Однако включение машинного кода в программу целесообразно в следующих ситуациях: 245 Слв и като и л сгавлвииа и особливости, завися иа ог ализа ии при выполнении специальных машинно-зависимых команд; при невозможности осуществления доступа к регистрам как к ячейкам памяти; при написании программ, критичных к зффективности; ° при выполнении прдграммой некоторых функций аппаратуры ". 8.7. Связь с другими языками [13.91 Одна из проблем, связанных с переходом от одного языка программирования к другому, — что делать с уже сугцествующим программным обеспечением.

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

Язык программирования Ада в значительной степени облегчаег переписывание программного обеспечения за счет прагмы, позволяющей связать Адапрограммы с подпрограммами, написанными на других языках. Эта'прагма имеет форму ргайвза Ич)ТЕКРАСЕ(имя языка, лмя подпрограммы) Следующий пример 11зоьэ831 показывает, как две подпрограммы БОКТ и ЕХР, написанные на языке фортран, могут быть вызваны из Ада-программ. рвсйайе РОКТ с1В 18 -- Ада-спецификации 8ОКТ и ЕХР 1ввсг(ов В()КТ(Х1 Н.ОАТ) гейвп Н.ОАТ; (вве81ов ЕХР(Х: Н.ОАТ) гегвгв ГЬОАТ1 рг1чаге -- зти подпрограммы реализованы на языке Фортран ргайнза 1МТЕКРАСЕ(РОКТКАгч, 3(1КТ)1 ргайвза 1)ч(ТЕКРАСЕ(ГОКТКА)ч1, ЕХР); еве) ГОКТ 11В; 8.8.

Неконтролируемое освобождение памяти ~13.10, 13.10. Ц Язык Ада содержит настраиваемую подпрограмму 1Лх(СНЕСКЕО ГгЕА1: 1ОСАТ)О)х) для явного освобождения или повторного использования памяти, отведенной для ссылочных переменных. Явное освобождение динамических объектов может понадобиться, если в реализации языка не предусмотрена сборка мусора ийили возникает необходимость в явном управлении памятью.

Программист сам должен следить за тем, чтобы освобождалась только нетребуемая более память. и Например, ядро операпионной системы 111Ч!Х™ содержит около 1О 000 строчек кода, написанных на языке системного программирования Си, н около 1000 строчек ассемблерного кода. 800 строк этого ассемблерного кода можно было бы написать на языке Си. Олнако (не только по причинам эффективности)текст остался написанным на языке ассемблера, чтобы выполнять функпии аппаратуры, исполнение которых невозможно в языке Си (тН078].

Глава В Настраиваемая подпрограмма 1)ХСНЕСКЕ)э ОЕАЬ ОСАТ1ОХ имеет следующую спецйфикацию: . денег)с суре ОВЯЕСТ Ыв11ео рпгаге; 1уре ХАМЕ 1в ассеяв ОВУЕСТ; ргосеовге ЫХСНЕСКЕ)) ОЕАЬЬОСАТ1ОХ(Х: 1в овг ХАМЕ); Предположим, что две ссылочные переменные Х и У указывают на один и тот же объект, а РйЕŠ— подходящая конкретизация настраиваемой процедуры ЫХСНЕСКЕО ОЕАЬЬОСАТ1ОХ. Ссылка на это объект с использованием ссылочной переменной У после выполнения оператора РзчЕЕ(Х); вызывает выдачу сообщения об ошибке, так как первоначально занятая под этот объект память освободилась и содержит значение некоторого неизвестного типа.

Поэтому программист обязан следить за тем, чтобы подобные ситуации не возникали. 8.9. Неконтролируемые преобразования типов [13.10, 13.10.2] Доступ к представлению, которое в языке Ада называется неконтролируемым преобразованием, можно получить, используя настраиваемую подпрограмму 1)ХСНЕСКЕО СОХЧЕКЯ10Х. При этом допускается рассмотрение любого битового изображения в памяти как значения любого требуемого типа. Программист обязан следить за тем, чтобы битовое изображение, рассматриваемое как значение некоторого желаемого типа, представляло осмысленное значение этого типа. Такие неконтролируемые преобразования могут оказаться необходимыми для определенных пользователем процедур распределения и освобождения памяти; адреса памяти, представленные целыми числами, должны преобразовываться в ссылочные значения подходящего типа, и наоборот ').

Спецификация настраиваемой подпрограммы УХСНЕСКЕ)) СОХЧЕКБ1ОХ имеет вид яепег)с гуре 301ЖСЕ 1я Ипи1е$ рг)уа1е; куре ТАКОЕТ 1й Вв)сео рг1таге; Ввсбоп ЫХСНЕСКЕ1) СОХЧЕй81ОХ1Е: БОЫзсСЕ) гегвгп ТАзчОЕТ; о Другой пример использования неконтролируемого преобразования — реализация записей с вариентвми в языке Фортран (нв свмом деле в Фортране нет записей). Для определения стека, элементами которого могут быть либо целык либо вешественные числа, задается мессин целых чисел. Элементы этого массива рассматриваются непосредственно кек целые числа или косвенно (используя опервтор эквивалентности) квк действительные Это может явиться причиной ошибки, ткк ккк целые числа могут ошибочно рассматриваться квк вешественныц и наоборот.

Но в данном случае у прогрвммиста нет выборе, твк ккк в Фортране иет записей с вариантами или эквивалентной им замены. 247 Спв и кат и ставявиия и особенности завися ивог ализа ии 8.10. Примеры Использование спецификаций представления показано на двух примерах. Первый пример — это программа, которая читает символы с клавиатуры печатающего устройства и выводит их на печать. Этот пример иллюстрирует связь программных переменных с аппаратными буферами и аппаратными прерываниями.

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

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

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

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