Cтраница 1
Вызывающие модули состоят из управляющих операторов РЕДАКТОРА и любых перфокарт с пробелом в первой позиции. Последней картой такого модуля должна быть уже описанная выше карта END. Для каталогизации в RL часто встречающихся комбинаций управляющих операторов РЕДАКТОРА используются вызывающие модули. [1]
Информация о структуре вызывающего модуля не должна содержаться во внешней спецификации на вызываемый модуль. [2]
Для взаимодействия вызываемых и вызывающих модулей создаются зоны обменных переменных, информация из которых доступна лишь модулям, непосредственно связанным по управлению. [3]
Местонахождение подпрограммы становится известным вызывающему модулю с помощью компоновщика, если ее имя объявлено глобальным. [4]
Два взаимодействующих модуля образуют пару вызывающий модуль - подпрограмма. Для правильного их функционирования необходимо, чтобы вызывающему модулю было известно местонахождение подпрограммы в общей структуре программы, были определены способы вызова подпрограммы и возврата из нее и, наконец, выбран способ обмена данными между подпрограммой и вызывающим модулем. [5]
Адрес возврата - адрес команды вызывающего модуля, по которому возвращается управление из вызываемого модуля. [6]
Информация, находящаяся в регистрах вызывающего модуля при вызове, должна быть сохранена на период выполнения вызываемого модуля и восстановлена при возврате управления в вызывающий модуль. Сохранение регистров может осуществлять как вызывающий, так и вызываемый модуль, однако принятое соглашение должно соблюдаться при всех вызовах модулей. [7]
Смешанные модули состоят из карт вызывающего модуля, за которыми следуют карты стандартного модуля с картой END в конце. Используются смешанные модули для упрощения процесса редактирования. [8]
Часть аргументов подпрограмм может наследовать распределение от вызывающего модуля при местном распределении остальных аргументов. [9]
Эта версия программы Random с точки зрения вызывающего модуля имеет в точности такой же интерфейс, как и первая, поскольку описательная часть не изменилась. Таким образом, новая версия может быть использована везде, где использовалась предыдущая. Фактически вызывающий модуль не может их различить. Глобальные модули рассматриваются в гл. [10]
Для организации обмена данными между подпрограммой и вызывающим модулем используются различные способы передачи параметров. [11]
По окончании исполнения вызываемого модуля управление передается в вызывающий модуль на оператор, следующий непосредственно за оператором вызова. [12]
По принятым соглашениям в третье слово области сохранения вызывающего модуля заносится ссылка на область сохранения вызываемого модуля. Тем самым третьи слова областей сохранения образуют вторую цепочку, по которой также можно просмотреть области сохранения, задействованные при выполнении последовательности модулей. При этом вторая цепочка позволяет двигаться по областям сохранения в обратном порядке по сравнению с первой цепочкой. Таким образом, области сохранения модулей связываются в двунаправленный список, что полезно для организации аварийных выдач. [13]
Это обеспечивает их высокую корректность при подключении к вызывающим модулям. [14]
В табл. 16.5 приведены структура и содержание области сохранения вызывающего модуля. Регистр 15 загружается адресом входа в вызываемый модуль, а регистр 14 - адресом возврата из вызываемого модуля. Один из адресов предусматривается для результата, формируемого вызываемым модулем. [15]