Cтраница 3
Вызов фактических параметров по значению заключается в следующем: перед началом выполнения подпрограммы значения фактических параметров присваиваются соответствующим формальным параметрам. После выполнения подпрограммы значения формальных параметров присваиваются соответствующим фактическим параметрам. [31]
Для нового элемента поля VAL, LENGTH, TYPE, REL ABS заполняются значениями фактических параметров VALUE, LENGTH, TYPE и MODE соответственно. [32]
Процедура GET выбирает список значений, записанный ранее с помощью процедуры PUT, используя значение первого фактического параметра в качестве идентификационного номера. Эти значения присваиваются переменным, задаваемым описательной процедурой, идентификатор которой является вторым фактическим параметром. [33]
Процедура GET выбирает список значений, записанный ранее с помощью процедуры PUT, используя значение первого фактического параметра в качестве идентификационного номера. Эти значения присваиваются переменным, задаваемым описательной процедурой, идентификатор которой является вторым фактическим параметром. [34]
Весьма сложным, даже в рамках Subset Algol 60, является вопрос о типе значения фактического параметра, когда он является арифметическим выражением. Действительно, пусть в теле некоторой процедуры Р используется указатель функции F ( А), где F есть формальный параметр процедуры Р, а через А обозначено арифметическое выражение, являющееся фактическим параметром. [35]
При передаче параметров по значению формальный параметр связывается с тем же значением, что и значение фактического параметра. Изменения значения формального параметра во время вычисления функции никак не отражаются на значении фактического параметра. С помощью параметров, передаваемых по значению, информацию можно передавать только внутрь процедур, но не обратно из них. При передаче параметров по ссылке изменения значений формальных параметров видны извне и можно возвращать данные из процедуры с помощью присваивания значений формальным параметрам. [36]
Правила определения совместимости для присваивания используются и при выяснении вопроса о соответствии фактического параметра формальному параметру-значению: значение фактического параметра должно быть совместимо в смысле присваивания с соответствующим формальным параметром-значением. [37]
Список значений позволяет использовать формальные параметры процедуры в качестве дубликатов соответствующих фактических параметров, обеспечивая тем самым сохранение значения фактического параметра после выхода из процедуры, и ускорить выполнение операторов содержания процедуры в том случае, когда соответствующие фактические параметры являются сложными выражениями. Если в список значений включен формальный параметр, соответствующий именующему выражению и специфицированный как label, то значением его будет метка, причем в отличие от остальных параметров метка не считается локализованной в воображаемом блоке. [38]
Как видно, обращение к подпрограмме стало единообразнее и потому проще, поскольку это обращение не зависит от типа значений фактических параметров. [39]
Для параметров-значений машина при вызове процедур производит следующие действия: выделяет место в памяти для каждого формального параметра, вычисляет значение фактического параметра и засылает его в ячейку, соответствующую формальному параметру. [40]
Процедура PUT запоминает на внешнем носителе список значений, задаваемый описательной процедурой, являющейся вторым фактическим параметром, и использует значение первого фактического параметра в качестве идентификационного номера. Если ранее под этим же идентификационным номером хранилась какая-либо информация, то она уничтожается. [41]
Подфункцией в АЛГОЛе понимается совокупность правил, по которым может быть получено некоторое конкретное значение этой функдии в зависимости от значений заданных фактических параметров. [42]
Под функцией в АЛГОЛе понимается совокупность правил, по которым может быть получено некоторое конкретное значение этой функции в зависимости от значений заданных фактических параметров. [43]
В этом случае в вызывающей программе в операторе DIMENSION должна быть указана конкретная размерность обрабатываемого массива, а в операторе CALL должны быть определены значения фактических параметров, соответствующие размерности массива. [44]
Когда в процессе выполнения программы встречается операнд-функция, нужно найти описание процедуры с тем же именем и выполнить вычисления в соответствии с этим описанием, используя значения заданных фактических параметров. Можно многократно ссылаться в программе на одно и то же описание процедуры. В принципе, можно было бы обойтись без функций, если всякий раз записывать в программе нужную последовательность действий, однако применение функций обычно позволяет существенно сократить текст программы и сэкономить усилия, затрачиваемые на ее изготовление. [45]