Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 72

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 72 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 722019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Алгоритм маркировки для сборки мусора и процесс подсчета ссылок могут реализовываться значительно эффективнее при использовании циклического сдвига указателей и операций скольжения, описанных Сузуки (Бцлц(с(, 1982). 26а Глава б. Типы данных заедки переменного рахчерж Управление динамической памятью с ячейками переменноазчера сопряжено с теми же трудностями. что и управление динамической памятью с ° =эками постоянного размера, и кроме этого возникают дополнительные проблемы. но, к +хтению, ячейки переменного размера требуются в большинстве языков программиро: -ия. Дополнительные проблемы. характерные лля ячеек переменного размера, зависят от .-ода. используемого для управления динамической памятью.

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

° Процесс маркировки ячеек нетривиален. Как можно пройтн цепочку, начавшуюся с указателя, если заранее не определено положение указателя в целевой ячейке". Другой проблемой являются ячейки, не содержащие указателей. Конечно. можно ввести системный указатель для каждой ячейки, но такие указатели лолжны поддерживаться параллельно с пользовательскими указателями. Такой подхол снижает эффективность с точки зрения памяти и времени, затрачиваемых на выполнение программы. ° Поддерживается список доступной памяти. Вначале этот список может состоять из олной ячейки.

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

Возможна альтернатива; использование первого достаточно большого блока в списке, что сократит поиск, но потребует упорядочения списка по размерам блока. В любом случае нужны дополнительные расходы на поддержание списка. Если в качестве метода управления динамической памятью используются счетчики ссылок, то из трех перечисленных проблем остается только последняя. Стиль и использование языка программирования во многом определяется его типами данных, которые вместе с управляющими структурами формируют ядро языка. В число элементарных типов данных л~ногих языков входят числовые.

символьные и булевские типы. Числовые типы данных довольно часто поддерживаются непосрелственно аппаратным обеспечением. Определяемые пользователем перечислимые и ограниченные типы удобны. а их использование повышает читабельность и надежность программ. 269 Резюме Другой частью большинства языков программирования являются массивы. Связь между ссылкой иа элемент массива и адресом этого элемента в памяти предоставляется функцией доступа.

которая прелставляет собой реализацию отображения. Массивы могут быть статическими (как в языке ГОКТйА)Ч 77); фиксированными автоматическими (как в процедурах языка Рааса(); автоматическими (как в блоках языка Аг(а) или динамическими (как в массивах Аг 7.0САТАВ(.Е языка ГОКТКА)Ч 90). В большинстве языков су шествует только ограниченное число операций с массивами, как с единым целым. В большинство современных языков вошел такой тип данных, как записи. Поля записей задаются разнообразными способами. В языках СОВОГО и Р1Л, например, ссьшаться на них можно.

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

Размеченные объединения содержат метку для записи значения текушего типа. Свободным объелинением называется объединение без метки. Большинство объединений современных языков имеют небезопасную структуру, исключением является только язык Ада. Часто бывает улобно и относительно просто реализовать множества данных.

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

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

имеюших несколько инлексов, доступ к элементу может оказаться неэффективным. Это объясняется тем, что функция доступа к элементу массива требует на каждый индекс по одной операции сложения и умножения. Другим неэффективным процессом является реализация указателей, если они предназначены для управления динамической памятью и если принимаются какие-нибудь меры для решения проблемы висячих указателей. Если ячейки памяти имеют одинаковый размер, то управление динамической памятью выполняется относительно легко, но тот же процесс значительно усложняется при использовании ячеек переменного размера. 3 ° ° Сушествует множество литературы по компьютерным наукам, в которой освешаются вопросы структуры типов данных, их использования и реализации. Одно из первых семантических описаний структурных типов дает Хоар в книге (Оап! е! а(., 1972).

Сравнение типов структур языков АЬООЬ68 и Рааса( проволится Тененбаумом (ТепепЬашп, 1978). сравнение языков С и Рааса!, в том числе и структур типов, проводится Фоером и Гехани (Гецег апд Оейап), 1982). Обсуждение ненадежных моментов в структуре типов данных языка Рааса( рассмотрено в книге (Фе!зп е! а(., 1977). Обший обзор разнообразных типов данных дается в книге (С(еаче(апд, 1986).

2УО Глава 5. Типы данных -гром и Ле Бланком (Р1зйег апд ЬеВ)апс, 1980) рассмотрена проверка времени выполнения возможных ненадежных моментов в типах данных языка Рааса). В большинстве книг по разработке компиляторов, например (Г1ьйег апд 1еВ!апс, 1988) и (Айо ег а1.), а также прочих книгах по языкам программирования — (Ргап, 1984) и (ОЬехх! апд 1агауег1, 1987) — описываются методы реализации типов данных. Подробное обсужлечне проблемы управления динамической памятью можно найти в книге (ТепепЬаит ег з1.. !990). Методы сборки мусора разработаны Шорром и Уайтом (Бсйогг апд %айе, 1967), а также Дойчем и Бобровым (Оешзсй апд ВоЬгот, ! 976). Всестороннее обсчжленпе алгоритмов сборки мусора можно найти в работе (Сойеп,! 981).

° ° Что такое "дескриптор"? Назовите достоинства и недостатки десятичных типов ланных. Назовите вопросы разработки, характерные для символьной строки. Сформулируйте три варианта выбора длины строки. Дайте определения порядковых типов, перечислииых типов и ограниченных типов.

В чем заключаются достоинства перечислимых типов. опрелеляемых полиювателем? Назовите вопросы разработки, характерные лля массивов. Дайте определения фиксированных авточатическик, автонатических и динамических массивов. В чем достоинства каждого из них? 9. Какое свойство инициализации массива доступно в языке Ада и не доступно в лругих распространенных императивных языках программирования". 1О. Что такое константное.иножество? 11. Какие операции с массивами заданы только д)!я одномерных массивов языка Ада? 12.

В чем различие между сечениями языков ГОКТЙАХ 90 и Ада? 13. Дайте определения записи по строкам и записи па столбцам. 14. Что такое функция доступа к.массиву? 15. Какие позиции требуются в дескрипторах массивов языка Рааса! и когда они должны записываться в память (во время компиляции или во время выполнения)". 16. Для чего в записях языка СОВОК нужны номера уровней? 17. Дайте опрелеление полностью определенной и эллиптической ссытки на поле записи.

18. Дайте определение объединения, свободного объединения иразнеченного обьединения. 19. Назовите вопросы разработки, характерные для обьединений. 20. В чем заключаются две проблемы использования объединений языка Рааса!? 21. Чем объединения языка Ада безопаснее обьединений языка Рааса!? 2У1 Вопросы Почему в реализациях языка Рааса! значительно ограничивается размер множеств? Назовите вопросы разработки, характерные для указателей. Назовите две обшие проблемы, связанные с использованием указателей. Назовите две причины большей надежности указателей Ада по сравнению с указа- телями языка Рааса! 22. 23. 24. 25.

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

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

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

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