Реферат: Распределение памяти

и запоминается во временной переменпой, и адрес этой переменной

передается в списке параметров. Такая переменная называется

фиктивным аргументом.

Вызов по имени

Согласно сообщению о языке АЛГОЛ, использование вызова

параметра по имени означает буквальную замену имени формального

параметра фактическим параметром.

Получить эффективную реализацию с помощью такой текстовой

замены, конечно, нельзя, и мы должны разработать соответствующий

эквивалентный способ.

Обычный способ реализации вызова параметров по имени

состоит в том, чтобы иметь отдельную программу или процедуру в

объектном коде для каждого такого параметра. Для такой программы

был введен термин "санк" ( thunk ). Когда происходит вызов санка,

он вычисляет значение фактического параметра ( если этот параметр

не переменная ) и передает адрес этого значения. В теле процедуры

при каждой ссылке на формальный параметр происходит вызов санка,

после чего для обращения к нужному значению используется

переданный санком адрес.

Различие между вызовом по ссылке и вызовом по имени

заключается в следующем: адрес фактического параметра,

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

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

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

обращение к формальному параметру.

Имя массива в качестве фактического параметра

В этом случае и фактический, и формальный параметр должны

быть массивами. Процедуре передается адрес первого элемента

массива ( для языков, которые не требуют информационных

К-во Просмотров: 819
Бесплатно скачать Реферат: Распределение памяти