Cтраница 3
Выполнение оператора процедуры состоит в присваивании всем формальным параметрам значений соответствующих фактических параметров или замене формальных параметров фактическими и последующего выполнения процедуры. [31]
Выполнение оператора счет ( а, 2 X а) эквивалентно выполнению на его месте тела процедуры после замены формальных параметров фактическими. [32]
В предыдущих параграфах было показано, что передавать информацию из одной программной единицы в другую можно при помощи замены формальных параметров фактическими в подпрограммах-функциях и подпрограммах. Для этих же целей используются общие области памяти или общие блоки. Общим блоком называется группа величин, обозначенная идентификаторами простых переменных или идентификаторами массивов ( с указанием верхних границ изменения индексов или без этого) и размещаемая на участке оперативной памяти, к которой возможно обращение из нескольких программных единиц. Входящие в общий блок величины, называемые обычно элементами общего блока, разделяются запятыми. Общий блок может быть помечен идентификатором, который окаймляется символом / с обеих сторон. [33]
В предыдущих параграфах было показано, что передавать информацию из одной программной единицы в другую можно при помощи замены формальных параметров фактическими в подпрограммах-функциях и подпрограммах. Для этих же целей используются общие области памяти или общие блоки. Общим блоком называется группа величин, обозначенных идентификаторами простых переменных или идентификаторами массивов ( с указанием верхних rpairfm изменения индексов или без этого) и размещаемая на участке оперативной памяти, к которой возможно обращение из нескольких программных единиц. Входящие в общий блок величины, называемые обычно элементами общего блока, разделяются запятыми. Общий блок может быть помечен идентификатором, который окаймляется символом / с обеих сторон. [34]
Если формальным параметром подпрограммы-функции является идентификатор подпрограммы-функции, а в качестве фактического параметра выступает идентификатор стандартной функции или подпрограммы-функции, то замена формального параметра производится по наименованию, а идентификатор такого фактического параметра должен быть указан в списке идентификаторов оператора внешних подпрограмм в вызывающей программной единице. [35]
Если формальным параметром подпрограммы-функции является идентификатор подпрограммы-функции или подпрограммы, а в качестве соответствующего фактического параметра выступает идентификатор внешней стандартной функции, подпрограммы-функции или подпрограммы, то замена формального параметра производится по наименованию, а идентификатор такого фактического параметра должен быть указан в списке идентификаторов оператора внешних подпрограмм в вызывающей программной единице. [36]
В пятом модуле каждому типу оператора отредактированной схемы программы ставится в соответствие его формальный эквивалент в терминах целевого языка программирования ( в данном случае ПЛ / 1) с заменой формальных параметров в языковой конструкции на фактические. [37]
Между элементами списка формальных параметров и элементами списка фактических параметров должно соблюдаться соответствие по числу, последовательности и типу величин. Замена формальных параметров фактическими аргументами реализуется путем передачи в процедуру адресов аргументов. Эти адреса подставляются в тело процедуры на место формальных параметров. [38]
В первом случае перед, началом выполнения подпрограммы формальный параметр во всех операторах подпрограммы-функции заменяется на соответствующий фактический параметр и все действия, предусмотренные над формальным параметром, в действительности будут выполняться над соответствующим фактическим параметром. Замена формальных параметров фактическими осуществляется по наименованию, если соответствующий формальный параметр является либо идентификатором массива, либо идентификатором подпрограммы-функции или подпрограммы. [39]
В первом случае перед началом выполнения подпрограммы формальный параметр во всех операторах подпрограммы-функции заменяется на соответствующий фактический параметр и все действия, предусмотренные над формальным параметром, в действительности будут выполняться над соответствующим фактическим параметром. Замена формальных параметров фактическими осуществляется по наименованию, если соответствующий формальный параметр является либо идентификатором массива, либо идентификатором подпрограммы-функции или подпрограммы. [40]
Замена формальных параметров процедуры фактическими по наименованию при использовании процедуры в программе не всегда удобна. Во-первых, накладываются ограничения на фактические параметры процедуры. Параметры, используемые в качестве левой части оператора присваивания, могут быть только переменными. [41]
По наименованию в принципе мо-дает вызываться любой формальный параметр, какова бы ни была его роль в процедуре. Однако чтобы замена формального параметра фактическим не приводила к бессмыслице, фактический параметр должен удовлетворять некоторым требованиям. Этот параметр в теле процедуры дважды встречается в левой части оператора присваивания. Ясно, что соответствующий ему фактический параметр может быть только переменной ( простой или с индексами), причем арифметической переменной, так как ей при выполнении процедуры будут присваиваться арифметические значения. В АЛГОЛе действует требование, чтобы любое обращение к процедуре приводило к осмысленному результату - чтобы формальным параметрам, вызываемым значением, присваивались при обращении значения, которые могут быть им присвоены, а формальные параметры, вызываемые по наименованию, заменялись такими фактическими параметрами, чтобы тело процедуры превращалось после этой замены в полноценный оператор, удовлетворяющий всем правилам АЛГОЛа. [42]
В целях унификации некоторых программных решений, связанных, главным образом, с обменом, а также для использования стандартных участков программы в автокодах используются макрокоманды. ЦВМ с заменой формальных параметров на фактические. [43]
Оператор процедуры служит дли обращения к выполнению соответствующей подпрограммы-процедуры. Он обеспечивает вызов подпрограммы-процедуры, замену формальных параметров подпрограммы-процедуры фактическими параметрами ( для подпрограмм-процедур с параметрами) и передачу управления подпрограмме-процедуре. После выполнения подпрограммы-процедуры управление передается либр оператору, следующему за оператором процедуры, либо оператору, метка которого содержится в списке фактических параметров оператора процедуры. [44]
Оператор процедуры служит для обращения к соответствующей программе-процедуре. Этот оператор обеспечивает вызов подпрограммы-процедуры, замену формальных параметров подпрограммы-процедуры фактическими параметрами ( для подпрограмм-процедур с параметрами) и передачу управления подпрограмме-процедуре. После выполнения подпрограммы-процедуры управление передается оператору, следующему за оператором процедуры, либо оператору, метка которого содержится в списке фактических параметров оператора процедуры. [45]