Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 62

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 62 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 622019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Операция создания выиолцяст две функции: отводит цод <ювый обьект даииь<х блок памяти и возвращает 1-зцачсццс этого объекта, которое затем может быть сохранено как >.-значение указателя. Операция создания объекта даииых отличается от его обычного создация посредством обьявлсиия в двух отцошсциях: а) создаваемые лри помощи этой операции объекты лациых ие обязаны иметь имела, так как доступ к цим осуществляется через указатели; б) таким спо< обом можно са>лазать объекты в любом мес ге программы и в л юбой момент се выполпеция, а це только прц входе в полцрограмму. 3. Операция ризымецов«ния, Эта операция определена для значений указателей и позволяет получить зцачецие оГ>ъекта, ца который ссылается даииыГ> указатель.

Спецификация. Тцп даццыхук«затеяв определяет класс обьсктов дал иых, значением которых является ссылка иа расцоложеция в области памяти некоторых лруп<х объектов да<шых. Объект данных укази>лвл>ь можно трактовать одним из двух оцисациых далее способов. 5.3. Составные типы данных 221 1. Указагнели могут ссылоться только на объекты одного типо. Такой подход применяется в С, Рааса! и Ада, где используется статический контроль типов и объявления типов. В языке С указатель на любой объект типа о)зт. объявляется следующим образом: Ь)аг *Р; Символ * указывает, что типом Р является указатель.

Тип )) за в данном случае означает, что значением Р может быть 1-значение любого объекта типа ).) зГ. Для определения структуры обьсктов тина ).1з1 требуется отдельное объявление: аггосг щ аг !аог Ы агуа1ое, Ь)аг *веха!)ев, !. 2. Укозателимогут ссылаться наобьектгяданныхл)обого типа. Альтернативой первому способу является разрешение указателю содержать ссылки на различныс объекты в различныс моменты выполнсоия программы. Такой подход применяется в языках типа ища!!га!к, в которых объекты данных в процессе выполнения программы снабжены дескрипторами типа и в которых реализован динамический контроль типов.

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

При входе в подпрограмму память распредсляется только для объекта данных Р (память лля хранения одного значения указателя). Далее в процессе выполнения подпрограммы может быть создан новый объект данных типа !.) з! при помощи следующего оператора; Р = аа11ос1югеот1шат)) Поскольку объект данных Р был объявлен как указатель тол ь ко на объекты типа ).) зг, смысл это) о оператора следующий: создать в памяти блок из двух слов для хранения объекта типа ).) з~ и 1-значение этого объекта сохранить в переменной Р.

Операция выбора позволяет использовать значение-указатель для доступа к указываемому пм объекту данных. Поскольку указатели являются обычными объектами данных, объект данных типа указатель также может быть в) )бран с помощью обычных механизмов выбора. 1!апример, в С операпия выбора объекта, на который ссьшастся некоторый указатель, обозначается как *. с!тобы выбрать компонент вектора, на который ссылается указатель Р, следует пан и гать *Р, 1) гав.

Операция * просто преобразует г значение указателя в ! значение, Таким образом, конструкция *Р. г) гас обеспечивает доступ к значению, хранящемуся в Р, считая, что оно теперь — 1-значение, п использует сто для доступа к компоненту Г) гзг записи, на которую указывает Р. 222 Глава Гь Элементарные типы данных Реализация. Объект данных типа указатель представляется в ниде области памяти, в которой содержится адрес другой области памяти, Это базовый (начальный) адрес блока памяти, представляющего объект данных, на который ссылается указатель. Используются два основных представления значений указателей в памяти.

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

Недостатком абсолютной адресации является то, что управление памятью становится более сложным, так как ни один объект данных не может быть перемещен в памяти, пока где-то существует на него указатель, если только значение последнего не изменяется, чтобы отразить новое расположение обьекта данных. Восстановление памяти, отведенной под объект данных, после того как он был удален в процессе сбора мусора, также достаточно трудны й процесс, так как для каждого объекта данных освобождаемая память восстанавливается в индивидуальном порядке и Г>лаки памяти должны бьггь возвращены обратно в общий пул доступного свободного пространства памяти.

Эти вопросы подробно обсуждаются в главе 10. Использование относительных адресов в качестве значений указателей требует первоначального выделения блоков памяти, в пространстве которых и выделяется память под объекты данных, последовательно создаваемые операцией пем Для каждого типа данных может выделяться своя отдельная область памяти, а может быть создана одна область, в которой размещаются все объекты всех типов. В любом случае к каждой из таких областей применяются методы унравления кучей.

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

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

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

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

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