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

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

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

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

Ситуация станет еще сложнее, если идентификатор 1' используется в разных частях программы для обозначения различных объектов. Какое из определений у следует использовать в данном месте программы? В двух словах, центральная проблема управления даннгями — зто проблема определения того, что означает у при каждом выполнении такого оператора присваивания. Поскольку У может быть как локальной, так и пе локальной переменной, зта проблема включает в себя то, что известно как области видимости для объявленных имен, Поскольку 1 может быть формальным параметром, имеют значение способы передачи параметров; а так как г может быть именем подпрограммы, не имеющей параметров, — то и механизмы возврата результатов из подпрограмм.

В следующем подразделе мы сначала обсудим, что собой представляют перечисленные задачи, а в разделе 93 более подробно опишем методы их реализации. 9.2.1. Имена и среды ссылок Существует два способа, с помощью которых обтскт данных можно сделать доступным в качестве операнда некоторой операции. + Неносредстоепная передача. Объект данных, вычисленный в определенной точке программы как результат выполнения некоторой операции, может быть непосредственно передан другой операции в качестве сс операнда (например, результат умножения 2 х 7 непосредственно передастся в качестве операнда операции сложения воператоре х:= г ~ 2 х 2). В этом случае объект данных временно располагается в памяти на все время его жизни и может даже никогда пс получить имени. + Ссьыка через ичеяоепя ныл обьект данпы г Прн создании объекта данных ему может быть присвоено нмя, которое затем используется для указания того, что этот объект является операндом некоторой операции. С другой стороны, объект дапнгях может быть компонентом некоторого другого объекта, имеющего имя, так что имя этого более крупного объекта может быть использовано совместно с операцией выбора для указания исходного объекта данных как операнда какой-либо операции.

Непосредственная передача используется для управления данными в выражениях, но для управления данными вне выражений в большинстве случаев исполь- 9,2. Атрибуты управления данными 399 зуются имена объектов данных и ссылки на них. Определение того, какой объект скрывается под некоторым именем, является центральной проблемой управления данными.

Элементы программы, которые могут иметь имена Какие типы имен можно встретить в программах? В каждом языке они свои, но существуют некоторые общие для многих языков категории типов имен, перечисленные ниже: 1) имена переменных; 2) имена формальных параметров; 3) имена подпрограмм; 4) имена тинов данных, определяемых программистом; 5) имена констант; 6) метки операторов (имена для операторов); 7) имена исключений; 8) имена элементарных операций (например, +, *, 56йт); 9) имена буквальных констант (например, 17, 3 25). Здесь мы в основном будем заниматься первыми тремя категориями имен— именами переменных, формальных параметров и подпрограмм.

Что касается остальных категорий, то большинство ссылок на имена этих групп разрешаются во время трансляции программы, а це во время ее выполнения, как уже говорилось ранее. Если разобраться в основных идеях, лежащих в процессе у правления данными для первых трех категорий, то распространить их на остальные категории не представляет большого труда. Имя, относящееся к любой из перечисленных категорий, называется простым именеэь Составное имя — это имя компонента некоторой структуры данных. Оно записывается как простое имя, обозначаюшее всю структуру целиком, за которым следует последовательность одной или более операций выбора, которые выбирают конкретный элемент данной именованной структуры.

Например, если А — это имя массива, то А является простым ил~енсы, а АГЗ) — составное имя. Составные имена могут быть достаточно сложными (например, АГЗ) .51аээ(2]. лооп). В больпшнстве языков простые имена представлены идентификаторами вида Х, 22, 5нЬ1, поатому термины «имя» и «идентификатор> являются взаимозаменяемыми. Ассоциации и среды ссылок К управлению данными по большей части опюсятся процедуры связывания идентификаторов (простых имен) с конкретными объектами данных и подпрограммами. Такое связывание называется ассоциацией и может быть представлено как пара, состоящая из идентификатора и связанного с ним объекта данных (или подпрограммы).

Во время выполнения программы мы можем наблюдать следуюшее. 1. В начале выполнения главной программы ассоциации идентификаторов связывают имя каждой объявленной в ~ ~ей переменной с конкретным об ьек- 400 Глава 9. Управление подпрограммами том данных, а каждое имя подпрограммы, вызываемой в главной программе, — с конкретным определением подпрограммы. 2. Когда выполняется главная программа, она вызывает операции обработки ссьиок для определения конкретного объекта данных или подпрограммы, ассоциированной с идентификатором. Например, для выполнения оператора присваивания А: В ~гв(В необходимо выполнить четыре операции обработки ссылок для получения объектов данных, ассоциированных с именами Я, В и С, и подпрограммы, ассоциированной с именем Гй. 3.

При вызове каждой новой подпрограммы для нее создается новое множество ассоциаций. Имя каждой переменной и каждого формального параметра, объявленных в подпрограмме, ассоциируется с определенным объектом данных. Также могут быть созданы новые ассоциации для имен подпрограмм. 4. Когда выполняется подпрограмма, она вызывает операции обработки ссылок для определения конкретного объекта данных или подпрограммы, ассоциированных с каждым идентификатором. Некоторые из этих ссылок могут быть ссылками на ассоциации, созданные при входе в подпрограмму, в то время как другие могут указывать на ассоциации, созданные ранее в главной программе.

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

Это множество ассоциаций идентификаторов назь1вастся средой ссылок подпрограммы (или программы). Среда ссылок подпрограммы обычно не меняется во время ее выполнения. Она устанавливается в момент создания активации подпрограммы и остается неизменной в течение всего времени жизни активации. Значения различных объектов данных могут меняться, но ассоциации имен с объектами данных и подпрограмм остаются неизменными. Среда ссылок подпрограммы может состоять из нескольких компонентов.

1. Среда локальных ссьиок (или просто локальная среда). Множество ассоциаций, созданных при входе в подпрограмму и представляющих формальные параметры, локальные псремешгые н подпрограммы, определенные только внутри этой подпрограммы, формирует среду локальных ссьыок этой активации подпрограммы. Значение ссылки на имя из локальной среды можно определить, не выходя за пределы активации подпрограммы. 2. Среди нелокальных ссылок. Множество ассоциаций для идентификаторов, которые могут использоваться в подпрограмме, но небыли созданы при входе 9.2. Атрибуты управления данными 401 в нее, называется средой нелокальных ссылок (или просто нелокальт<ой средой) подпрограммы. 3. Среди глобальных ссылок. Если ассоциации, созданные в начале выполнения главной программы, доступны для использования в подпрограмме, то они формируют среду глобальных ссылок (или просто глобальную сре<яу) этой подпрограммы. Среда глобальных ссылок является частью среды нелокальных ссылок.

4. Средапредопределеттт<ыхссылок. Для пекоторыхидентификаторовсуществует предопределенная ассоциация, которая задается непосредствешю в определении языка. Любая программа или подпрограмма может использовать подобные ассоциации без явного их создания. Видимость. Говорят, что ассоциация для идентификатора видима в подпрограмме, если она является частью среды ссылок лля атой подпрограммы. Существующая, но не входящая в среду ссылок выполняющейся в данный момент подпрограммыы ассоциация, называется скрытой от этой подпрограммы.

Часто ассоциация для идентификатора становится скрытой при входе в подпрограмму, которая переопределяет идентификатор, уже используемый где-то в программе. Динамическая область видимости. Кажлая ассоциация имеет динамическую областль видимости, которая ассоциируется с тем периодом выполнения программы, в течение которого она существует как часть среды ссылок. Таким образом, динамическая область видимости ассоциации состоит из множества активаций подпрограмм, внутри которых она видима. Операции обработки ссылок.

Операция обработки ссылки — это операция с сигнатурой: операция обработки ссылки идетттификатор х среда ссылок -т обкект данных ипи надира<ранна гле операция обработки ссыпки при заданных идентификаторе и среде ссылок находит соответствующую ассоциацию для этого идентификатора в этой среде ссылок и возвращает связанный с идентификатором объект ланных или определение полпрограммы. Локальные, нелокальпые и глобальные ссылки. Ссылка на илентификатор является локальной ссылкой, если операция обработки ссылки находит ассоциацию в локальной среде; сс ылка является недо кало<той или глобальттой ссьы кой, если ассоциация находится в нелокальяой или глобальной среде соответственно.

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

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

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