Эквивалентность типов данных. Ассоциации наименований объектов (пространства имен), страница 2

Среды ссылок периода исполнения

Варианты организации памяти исполняемой программы:

Процедуры и

статические данные

Куча

Свободная память

 


Стек

а)

Процедуры

Статические данные

Стек

Свободная память

 


Куча

б)

Статические данные

Процедуры

Область подгрузки

Куча

 

Свободная память

 


Стек

в)

Активация процедуры

1.  Формирование адреса точки входа в вызываемую процедуру (возможно – в результате подгрузки dll).

2.  Формирование и сохранение значений аргументов, которые должна обработать вызываемая процедура (фактических параметров).

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

4.  Сохранение содержимого регистров процессора.

5.  Формирование и сохранение адреса возврата.

6.  Собственно вызов процедуры, т.е. передача управления в ее точку входа.

7.  Создание локальных объектов (выделение памяти для их размещения).

8.  Выполнение процедуры, т.е. обработка значений фактических параметров, протекающая путем

·  формирования и использования значений локальных объектов;

·  формирования и последующего использования результатов промежуточных вычислений;

·  использования, и, возможно, модификации локальных объектов других существующих активаций этой же или других процедур (если это предусмотрено языком);

·  использования, и, возможно, модификации значений статических данных программы.

9.  Формирование и сохранение значения возвращаемого результата.

10.  Уничтожение объектов, созданных исключительно для выполнения данной активации процедуры.

11.  Прямоугольная выноска: Для динамического доступа к нелокальным данным (связывание во время выполнения)Восстановление содержимого сохраненных регистров процессора.

12.  Возврат из процедуры – передача управления в ту точку вызывающей процедуры, адрес которой сформирован на шаге 3.

Запись активации процедуры

Прямоугольная выноска: Для «текстуального» доступа к нелокальным данным (связывание во время трансляции)
 


Результаты промежуточных вычислений

Локальные данные

Регистры процессора

Связь по доступу (необязательная)

Связь по управлению (необязательная)

Фактические параметры

Возвращаемое значение



А1

t0

В1

А1

t1

А2

В1

А1

t2

В1

А1

t3

А3

В1

А1

t4

В1

А1

t5

А1

t6

В2

А1

t7


Вызывающие последовательности

Прямоугольная выноска: Запись активации вызываемой процедуры