Лекции

DJVU-файл Лекции Информатика (614): Лекции - 2 семестрЛекции: Информатика - DJVU (614) - СтудИзба2015-07-19СтудИзба

Описание файла

DJVU-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла

Глава 4 Распределение памяти 4.1 Статические и динамические объекты программ Некоторые свойства обьекта и связи с другими объектами остаются неизменными при любом исполнении его области действия (участка программы, где этот объект считается су>цеству>огцим), '1акие свойства и связи называются сттпическими. Их можно определить по тексту щ>ограммь>, без ее исполнения ~211. Например, в паскале тип обьекта одно из статических свойств. Сама область действия объекта, по определению статическое его свойство. Связь двух объектов по свойству принадлежности одной области действия статическая связь.

Свойство объекта при любом исполнении области действия принимать значения только из фиксированной совокупности значений статическое свойство. Исчерпывакнций перечень прик|снимых к объекту операций, как правило, статическое свойство. Хотя в таком уже вошедшем в практику программирования динамическом языке как РуФ1н>п имеется возможность добавлять и удалять применяемые к объекту операции в ходе работы программы. Другие свойства и связи изменяются в процессе исполнения области действия. Их называют оипамичвскими. Например, конкретное значение переменной -- динамическое свойство.

Связь формального параметра с конкретным фактическим в результате вызова процедуры — динамическая связь. Размер конкретного массива с переменными границами— динамическое свойство. т1асто статические и динамические характеристики называют соответственно характеристиками периода компиляции (трансляции1 и периода выполнения (гпп1>п>е), подчеркивая то обстоятельство, что в период компиляции исходные данные программы неизвестны и, следовательно, динамические характеристики недоступны. Известна лишь информация, извлекаемая непосредственно из текста программы и тем самым относящаяся к любому ее исполнению (т> е. статическая информация).

Это деление характеристик на статические и динамические иногда оказывается слишком черно-белым. Например., длина массива с регулируемым размером формального параметра функции языка Си также формального параметра -- может меняться от вызова к вызову в зависимости от значения фактического параметра-размера.

Так что это и нс чисто статическая характеристика, и не вполне динамическая, .как значение переменной, которос можно изменить любым оператором присваивания. Возможна и более тонкая классификация характеристик по фактору изменчивости. Например. связывают изменчивость пе с областью действия, а с периодом постоянства других его избранных 193 характерисгик (выделяемой обьекту памяти., связи с другими обьектами и т.

п.). Уровень изменчивости характеристик об"ьектов языка одно из важнейших свойств языка. Одна крайняя позиция представлена концепцией неограниченного динамизма, когда по существу л1обая характеристика обрабатываемого объекта может быть изменена, при выполнении программы. '1'акая концепция нс исклн>чает прогнозирования и контроля, но и не связывает их жестко со структурой текста программы. Неограниченный динамизм присущ не только всем машинным языкам, но и многим языкам высокого уровня.

Эта концепция в разной степени воплощена в таких интерпрстативных динамических языках, как Бейсик, ЛР1., Лисп, С!ЛЗ., Яп1а11Са!К С1.ОЯ, Руонл1 и т.п. Другая крайняя позиция выражена в стремлении затруднить программисту всякое изменение характеристик объектов. Вводя объект, надо объявить характеристики, которым должно соответствовать всякое его использование. Конечно, неограниченной статики в программировании добиться невозможно (почему?).

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

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

4.2 Ссылочный тип Кроме известных нам статических объектов, многие языки программирования лопускак>т также и динамические объекты. При этом в языках со строгой дисциплиной описаний, например, в Паскале динамический объект не может иметь собственного имени, так как все идентификаторы языка, кроме идентификаторов стандартных (предопределенных) процедур и функций, должны быть описаны в соответствующих разделах программы.

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

Ссылочный тип 194 ээ о такоЙ же простой скалярнь<й тип, как целыЙ, веществе<<ный и логическиЙ, также имсь ющий прямую аппаратную поддержку. Элем<с<ггам<и множества значений этого типа являются конкретные ссылки на объекты указуемого типа, созданные в основной памяти в процессе выполнения г<рограммы. Ссылки в Паскале строго типизированы, и не следует их считать универсальными адресами областей памяти. Для названия ссылочного типа в языке Паскаль не зарезервировано никакого специального идентификатора: <ссылочный тип> ::= 1<имя указуемого типа> В языке Си указатель обозначается звездочкой, а в языке Модула 2 — словами ро1пСег Со.

Таким образом, ссылочные типы -- это множества значений, указывающих на объекты некоторых целевых 1указуех<ых) типов. Разные указуемые типы порождают разные ссылочные типы, множества значений которых не г<ересекаются. Однако пустое ссылочное значение ш1 принадлежит любому из ссылочных типов. Оно указывает на отсутствие связи с объектом (ана«огичпо нулю, который указывает на отсутствие количества). Следует заметить, что ш1 не является неопределенным значением ссылочпой переменной 1 . Кстати, слово ш1 -- аббревиатура «1исповского происхождения, означает поС ш 11эС.

Ссылочный тип может быть именованным и неименованным. В первом случае в разделе Суре Паскаль-програл<мы ему надо дать имя. 11апример: Суре Т вЂ” ...; 1' тип динамического объекта 3 ро1пСег — 'Т; 1'имя ссылочного типа -- ро1п<ег 3 Теперь элементами множества значений этого типа являются «адреса» областей памяти для размещения объектов типа Т. Имя ро1пгег мол<но употребить при описании переменной-ссылки: т<аг р: ро1пСег; При использовании неименованного ссылочного типа переменная-ссылка должна быть описана следующим образом: айаг р: 1Т; На Си это же выглядит так: Суре<1еГ Т* ро1п1,ег; ро1пС<гг р:, Т* р1;, В отличие.

от Паскаля р1 я<ого о<се тгта, что и р! В обоих случаях, обрабатывая описание переменной р, транслятор выделит для хранения значений ссылки место в основной памяти (обычно одно машинное слово, если ссылка реализована адресом значения., а не составным дескриптором динамического объекта). При этом следует учитывать, что память для ссылки находится в том состоянии, в котором она оставалась после предыдущего ее использования, т.

е. там располагается 195 некоторая случайная послсдовательносгь 0 и 1, не определенная данной программой, или нсопределашос значение 1, см. и. 3.1.1. В отличие от константы п11, имеющей и имя, и постоянное значение (известное, правда, только разработчикам транслятора), используемое для указания на отсутствие ссылки на какой-либо об"ьскт, за неопределенностью ( Е) не закреплено ни имени, .ни значения (от случая к случак> в отведенных областях памяти оказываются, как правило, различные последовательности нузтей и единиц).

Поэтому, если транслятор не контролирует использование неопределенных значений, такая последовательность 0 и 1 может быть интерпретирована как ссылка на объект; это даст возможность доступа, к случайной ооласти памяти и может привести к непредсказуемому эффекту [43].

В некоторых реализациях Паскаля значения переменных инициализируются нулями, пробелами или ш1'ами. Поскольку инициализация значений стандартом Паскаля не предполагается, это приводит к тому, что одна и та же программа на различных платформах работает по-разному. Для переменных в точности одного и того же ссылочного типа определены операции присваивта я и разыменования и отношение равенства. Если, например, результатом сравнения р =- ш1 является значение багие, то ссылочная переменная р не указывает ни на какой объект. Операция разыменоеанил обеспечивает доступ к значению обозначаемого ссылкой объекта. В Паскале разыменование обозначается стрелкой, приписываемой справа от указателя (р"), а в Си — звездочкой слева от него (»р).

Операция разыменования имеет аппаратную поддержку в;побом современном процессоре (косвенная адресация). «Важно делать различие между переменной-указателем и указуемым об"ьектом и быть очень осторожным при присваивании и сравнении указателей» [84[. В этом вопросе очень полезны графические илшострации. При графической иллюстрации динамических структур данных принято изображать ссылочные переменные малыми прямоугольниками, а указуемые ими значения большими. Стрелкой показывается связь между ссылкой и объектом. Пустое ссылочное значение и! (в Си это без лишней дипломатии просто О) очень удачно визуализируется знаком заземления. Для иллюстрации процесса манипуляции со ссылками полезно одновременно с написанием программного кода рисовать серию таких картинок.

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