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

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

завершение выполнения процедуры.

На первой фазе абстрактный вычислитель языка

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

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

Вторая фаза заключается в

активизируется абстрактный вычислитель языка: выполняются опера­торы тела процедуры.

На третьей фазе абстрактный вычислитель языка

уничтожает локальный контекст: возвращает состояние памяти, пред­шествовавшее вызову процедуры (с точностью до изменений значений, произведенных во внешнем контексте процедуры при выполнении вто­рой фазы), в частности, он ликвидирует память, выделенную на первой фазе для локального контекста;

передает управление в точку возврата.

Указанные шаги выполнения абстрактным вычислителем языка процес­са вызова процедуры определяют семантику данной языковой конструкции. Большинство моделей вычислений языков предписывает именно эти дей­ствия для реализации вызова, хотя в некоторых случаях они могут быть вы­рождены или дополнены. Наиболее заметны в этом отношении расхождения моделей в части работы с контекстами (шаги 1 и 4). Так, во многих языках предусматривается инициализация памяти, т. е. задание начальных значений для переменных локального контекста. В C/C++ предусматривается иници­ализация переменных, а в Паскале их значения считаются неопределенны­ми. В простых языках, в которых процедуры не имеют локального контек­ста, действия по подготовке памяти вырождены (например, в Basic). Иногда предписывается необходимость сохранения локального контекста после за­вершения вызова (описатель ownAlgol 60, который трактуется как средство, предназначенное для передачи информации от вызова к вызову процедуры). В этих случаях следует говорить не только о создании и уничтожении ло­кальных контекстов, но и об упрятывании их, возможно, частичном, а также о восстановлении контекстов.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама