Cтраница 2
Например, модуль нижнего уровня может читать сообщение с терминала и проверять правильность его типа и формата. Вначале он может быть реализован как заглушка с сообщением в виде пустой записи. Эта запись передается в вызывающую подпрограмму. Обработка пустой записи осуществляется модулем более высокого уровня, он может, в частности, определить правильность переданной записи. [16]
Важными характеристиками подпрограмм ( и любых компонентов ПО) являются реентерабельность и повтор-поиспользуемость. Одна копия реентерабельной подпрограммы может обслуживать одновременно несколько разных вызывающих подпрограмм. [17]
Два параметра LDA и N имеют различный смысл и не обязаны иметь одно и то же значение. Размер памяти, отводимой для массива А, определяется декларативным оператором в вызывающей подпрограмме пользователя, и LDA является первой размерностью массива, указываемого этим оператором. [18]
![]() |
Последовательный вызов подпрограмм. [19] |
Вызывающая подпрограмма обязана до перехода к вызываемой загрузить в общий регистр 13 адрес первого слова своей области сохранения. Стандартно эта загрузка производится при входе в подпрограмму. Вызываемая подпрограмма должна записать во второе слово своей области сохранения адрес области сохранения вызывающей подпрограммы, а в третье слово области сохранения вызывающей подпрограммы - адрес своей области сохранения. [20]
![]() |
Последовательный вызов подпрограмм. [21] |
Вызывающая подпрограмма обязана до перехода к вызываемой загрузить в общий регистр 13 адрес первого слова своей области сохранения. Стандартно эта загрузка производится при входе в подпрограмму. Вызываемая подпрограмма должна записать во второе слово своей области сохранения адрес области сохранения вызывающей подпрограммы, а в третье слово области сохранения вызывающей подпрограммы - адрес своей области сохранения. [22]
ХО, ХК - начальная и конечная координаты х отрезка интегрирования Хо я Xk AA ( 1) - массив, в котором последовательно располагаются коэффициенты матриц разрешающей системы, вычисленные при л 0, лсср ( о ь) / 2; хь. Коэффициенты матриц А ( х0), ( х), А ( ЖЬ) упорядочены в одномерном массиве АА по столбцам. В вызывающей подпрограмме конкретно указывается размерность массива HH ( L), где L SXN; N - число дифференциальных уравнений в системе; Yl ( l), Y2 ( l), Y3 ( l), Y4 ( l), Z ( l) - рабочие массивы. В вызывающей подпрограмме указываются размерности массивов LN2 N; AX ( 1) - рабочий массив. [23]
Даже если аппаратура не позволяет непосредственно реализовать этот механизм, он легко может быть промоделирован с использованием адресов команд и команд перехода. Необходимо только связать с каждой подпрограммой место для записи точки возврата в вызывающую подпрограмму. Когда какая-нибудь другая программа вызывает подпрограмму, она должна сначала записать соответствующую точку возврата в обусловленное место в вызываемой подпрограмме. Вызываемая подпрограмма возвращает управление вызывающей подпрограмме, просто передавая управление в эту точку возврата. [24]
Для этого тоже есть правила, хотя понять их труднее, чем четыре вышеприведенных правила. Конечно, формальный параметр применяется в процедуре как действительно описанный массив, но при этом есть определенные ограничения. Запоминать их до мельчайших подробностей не стоит. Если параметр, описанный как схема массивов, нужно перевести в другую подпрограмму, то в вызывающей подпрограмме его следует описывать как опорный параметр. [25]