Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 304

статическая последовательность контекстов доступа, называемая ста­тической цепочкой процедур, и

динамическая, определенная в момент вызова процедур, последова­тельность контекстов, которые суть локальные контексты вызванных,

но не завершенных процедур в порядке их вызовов,— динамическая цепочка процедур.

Приводимый ниже пример поясняет введенные понятия. Пусть имеется сле­дующая схема программы, на которой многоточиями обозначены описания программных объектов, входящих в контексты основной программы и про­цедур. Справа от схемы отмечены локальные контексты, которые обозначе­ны буквой К с последующим именем подпрограммы. Слева указаны номера строк. Пример приводится для языка Pascal, для C/C++ он был бы выро­жденным изза запрета вложенных описаний процедур.

Семантика вызова процедур, представленная выше, восходит к модели вычислений Algol 60; в Pascal, как и во многих других развитых языках программирования, с точностью до различий в локализации имен (которая к вызову имеет косвенное отношение), она воспроизведена без изменений.

Как уже отмечалось, потребность в статических цепочках возникает, ко­гда язык допускает вложенные описания процедур с правилами локализации имен, которые приведены выше на примере Pascal. Реализация такой воз­можности требует, чтобы в процессе выполнения программы в памяти сохра­нялись обе цепочки: одна для адресации данных, связанной с динамической вложенностью, а другая — со статической вложенностью. Это обстоятель­ство не очень привлекательно для разработчиков языков и трансляторов, а потому зачастую они жертвуют возможностью статической локализации имен (обычно путем запрета вложенных описаний процедур, реже — изме­нением правил локализации) в пользу повышения эффективности рабочих программ. Характерным примером такого рода является язык C/C++.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама