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

Обработка - ссылка

Cтраница 3


В работе дана оценка влияния, которое оказали применение ЭВМ и технология обработки информации на общество. Результаты этого анализа используются авторами для вывода требований, которым должны удовлетворять ЭВМ. Наиболее важными из них являются следующие: ЭВМ должны быть защищены от несанкционированного доступа; ни одно лицо не должно обладать полной властью по отношению к ЭВМ, на которой решаются задачи, имеющие важное значение для общества; ЭВМ должны подвергаться проверкам; базы данных должны без существенных изменений допускать возможность работы с ними программам защиты или мониторам обработки ссылок.  [31]

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

Нелокальные ссылки в рекурсивных подпрограммах не вызывают никаких особых проблем при любом из трех подходов к нелокальным средам. Каждый подход немедленно распространяется на случай рекурсии. При явно описываемой нелокальной среде X является глобальным и, следовательно, существует только в одной активации. В методе статической блочной структуры при обработке ссылки на X ассоциация для X будет выбираться из наиболее поздней активации подпрограммы, в которой описан X. В методе последней ассоциации нужная ассоциация будет, конечно, выбираться из последней активации в цепи вызовов.  [33]

Все ссылки в подпрограммах обрабатываются при помощи этой таблицы по описанной ранее сх ме базовый адрес смещение. Это простое вычисление пригодно в данном случае ввиду того, что текущая ассоциация для X всегда находится в одном и том же месте центральной таблицы независимо ог подпрограммы, в которой встретилась ссылка, и от того, является ли эта ссылка локальной или нет. Каждая ссылка требует только проверки флага активности в элементе таблицы, чтобы убедиться, что находящаяся в таблице ассоциация в дан ный момент активна. Применив центральную таблицу, мы достигли нашей цели - относительно эффективного выполнения операции обработки ссылки без поиска.  [34]

Моделирование неявных нелокальных сред, основанных на последней ассоциации в цепи вызовов, более сложно. Примем, что локальные среды должны создаваться и уничтожаться при входе в подпрограмму и выходе из нее и что для таблиц ассоциаций во время выполнения используется центральный стек. Первая найденная в стеке ассоциация для X была создана позднее других, и поэтому нужно использовать именно ее. Само собой разумеется, что при таком направленном поиске игнорируются противоречащие ассоциации, созданные ранее в цепи вызовов подпрограмм. Этот метод выполнения операции обработки ссылки проиллюстрирован на рис. 6.6 для примера из рис. 6.5. Соответствующий метод моделирования лежит в основе А-списка Лиспа, описываемого в гл.  [35]

Управление последовательностью действий в Сноболе 4 очень простое. Широко используются выражения, определяющие цепочки, числа и образцы. Инструкции могут быть помечены, при этом каждая инструкция содержит поле перехода, с помощью которого можно явно указать преемника данной инструкции в случае ее успеха или неудачи. Инструкция может завершиться успешно или неудачно по ряду причин; чаще всего это зависит от успеха или неудачи операции сопоставления с образцом. Простой механизм рекурсивных вызовов и возвратов позволяет передавать управление подпрограммам. Операция обработки ссылки основана на правиле последней ассоциации и использует центральную таблицу среды ссылок.  [36]

Рассмотрим сначала, как моделировать первый метод работы с локальными средами. Каждая подпрограмма имеет единственную локальную среду, которая существует все время выполнения, независимо от числа активаций этой подпрограммы. В этом случае будет разумным хранить таблицу локальной среды для подпрограммы вместе с командами этой подпрограммы, как на рис. 6.3. Если таблицы локальной среды строятся во время трансляции совместно с блоками выполняемых команд, то операцию обработки ссылки можно сделать весьма эффективной. Предположим, в программе имеется ссылка на X. Во время трансляции можно установить, что ассоциация для X является, например, четвертым элементом таблицы локальной среды. Чтобы при выполнении операции обработки ссылки получить доступ к четвертому элементу, нужно к базовому адресу таблицы прибавить фиксированное смещение.  [37]

Эти локальные среды сохраняются между вызовами, как в Фортране. Параметры передаются в такие подпрограммы по ссылке, и фактические параметры должны быть одиночными идентификаторами - именами простых переменных или записей. Полные описания соответствующих формальных параметров должны присутствовать в специальной Секции связи ( LINKAGE SECTION) Раздела данных подпрограммы. Подпрограммы, метки, выражения или константы не могут быть фактическими параметрами. Нелокальными идентификаторами в Коболе могут быть только имена отдельно скомпилированных подпрограмм, имена внешних файлов, упомянутые в Разделе оборудования, и несколько других второстепенных, зависящих от реализация идентификаторов. Простые структуры управления данными, применяемые в Коболе, позволяют определить все ссылки во время компиляции. Во время выполнения программы возможен прямой доступ к соответствующим ячейкам, содержащим данные, без каких-либо накладных расходов на обработку ссылок.  [38]



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