Среда - ссылка - Большая Энциклопедия Нефти и Газа, статья, страница 2
Порядочного человека можно легко узнать по тому, как неуклюже он делает подлости. Законы Мерфи (еще...)

Среда - ссылка

Cтраница 2


С проблемой вложенной структуры операторов тесно свя зама проблема вложенной статической среды ссылок, являющаяся следствием организации программы в иерархию определений блоков и подпрограмм. Компилятору приходится следить за статической средой ссылок ( например, в таблице символов со стековой структурой), чтобы можно было определить тип идентификаторов в операторах, которые транслируются. Оптимизация также является важной частью многих компиляторов с Алгола, хотя из-за более сложной структуры программ оптимизировать программы, написанные на Алголе несколько труднее, чем программы на Фортране.  [16]

В реализациях Лиспа иногда используется некий вариант метода центральной таблицы среды ссылок из разд. С каждым идентификатором ( атомом в Лиспе) связывается небольшой отдельный стек ( обычно он является частью списка свойств идентификатора), который содержит все ассоциации этого идентификатора. Текущая ассоциация находится на вершине этого стека; остальные элементы стека представляют неактивные ассоциации. При входе в подпрограмму, в которой имеется новая ассоциация для X, эта новая ассоциация помещается на вершину стека ассоциаций для X При выходе из подпрограммы верхний элемент стека для X просто удаляется, при этом восстанавливается старая ассоциация.  [17]

Алгол - первый язык с блочной структурой, использующий статическую блочную структуру для определения среды ссылок. В языке также допускается два способа передачи параметров: передача по значению и передача по имени.  [18]

В статье Боброва и Вегбрейта [1973] приводится структура реализации, пригодная для работы со средами ссылок в языках, использующих общие структуры управления последовательностью действий, такие, как сопрограммы.  [19]

Таким образом, программист может в любой момент прервать выполнение подпрограммы и запросить листинг ее среды ссылок.  [20]

Для того чтобы выделить в среде ссылок ассоциации, которые создаются в результате последнего изменения среды ссылок, используют понятие локальной среды ссылок. Под локальной средой ссылок понимают ту часть среды ссылок, которая была создана в результате последнего вхождения в блок или в подпрограмму. Остальную часть среды ссылок называют нелокальной средой ссылок. В последнем примере перед первым оператором печати print ( х, у) локальная среда ссылок состоит из двух ассоциаций, связывающих идентификаторы х, z с целыми переменными; нелокальная среда ссылок состоит из двух ассоциаций, связывающих идентификатор у с целой переменной и идентификатор А с вещественным массивом.  [21]

Управляющие структуры, более общие, чем простые подпрограммы с рекурсией, предъявляют новые требования к среде ссылок. Мы кратко обсудим возникающие проблемы, не пытаясь провести исчерпывающий анализ.  [22]

Вход в подпрограмму и выход из нее теперь стали более дорогими действиями, поскольку каждое изменение в среде ссылок требует модификации центральной таблицы.  [23]

В статье Вегнера [1971] в этом сборнике дается полезный обзор; в статье Джонстона [1971] предлагается контурная модель для представления сред ссылок; эта модель особенно полезна для ясного понимания сред, основанных на статической блочной структуре; в статье Органика и Клири [1971] описывается аппаратная реализация некоторых из рассмотренных понятий. Бойль и Гро [1970] рассматривают среды ссылок, основанные на статической блочной структуре, в теоретическом плане.  [24]

Второй подход применяют в случае применения интерпретационных языков, таких, как АПЛ, Лисп и др. В этих языках существует среда ссылок, она используется и изменяется непосредственно в процессе выполнения программы.  [25]

К такому языку, как Алгол, в котором обработка нелокальных ссылок основана на статической блочной структуре, метод центральной таблицы среды ссылок из разд. Лисп или Снобол 4, в которых для обработки нелокальных ссылок применяется правило последней ассоциации.  [26]

Специально предусмотрена возможность передачи вместе с именем функции ( в том случае, когда функция передается в подпрограмму как фактический параметр) среды ссылок; для этой цели служит примитив FUNCTION. Среда ссылок в момент передачи представляется указателем на текущую вершину А-списка.  [27]

Трудность, вызываемая нелокальными ссылками в параметре-подпрограмме, состоит в следующем: когда ссылка на формальный параметр приводит к выполнению подпрограммы-фактического параметра, среда ссылок, нужная для. Вместо нее обычно необходимо создать некоторую другую нелокальную среду ссылок специально для выполнения подпрограммы-параметра. Если нелокальные среды описываются явно ( как в Фортране), то никаких трудностей не возникает, поскольку все нелокальные ссылки обычно являются глобальными и, таким образом, не зависят от точки вызова или передачи. Однако если используются неявные нелокальные среды, то восстановление подходящей нелокальной среды в момент вызова может быть довольно сложной задачей.  [28]

Нам будет удобно также ввести термин локальная среда ссылок ( или просто локальная среда) для обозначения локаль-ных ассоциаций, появившихся птш последнем изменении среды ссылок.  [29]

Этот новый метод обобщает все методы моделирования локальных сред предыдущего раздела - и в отличие от них использует центральную таблицу, общую для всех подпрограмм: центральную таблицу среды ссылок. Для простоты мы рассмотрим здесь случай, когда локальные ассоциации не сохраняются между вызовами, а уничтожаются и создаются в центральном стеке. Это обычная ситуация; противоположный случай с сохранением локальных сред рассмотрен в упр.  [30]



Страницы:      1    2    3    4