Cтраница 1
Поток входных данных Редактора для создания структуры с перекрытием в ДОС ЕС. [1] |
Вызывающая программа на языке Кобол о помощью оператора ВЫЗВАТЬ осуществляет связь а программой, обеспечивающей выполнение динамической структуры, передавая в числе параметров имя точки входа в вызываемой программе на языке Кобол. Когда вызываемая программа заканчивает работу, она возвращает управление программе на языке Ассемблера, которая, в свою очередь, возвращает управление вызывающей программе на Коболе. Таким образом, все передачи управления между вызывающей и вызываемой программами на Коболе идут через программу на языке Ассемблера. [2]
Затем вызывающая программа Member ( 5) переводится в состояние ожидания, ожидая рандеву с обслуживающей программой до тех пор, пока последняя не возвратит сигнал подтверждения и этим завершит рандеву. Мы рассмотрим природу и синхронизацию таких подтверждений в последующих параграфах. После получения подтверждения ( сравнимого, но не идентичного с возвратом управления из вызванного пакета) вызывающая программа продолжает свое выполнение параллельно с обслуживающей. В общем случае каждое обращение задачи-запросчика к обслуживателю приводит к ее временной задержке ( блокировке) в ожидании рандеву с обслу-живателем. [3]
Вызывающей программе даже не нужно в качестве фактического параметра использовать переменную ( как в нашем примере), достаточно любого выражения подходящего типа. В конце концов процедуру интересует только одно значение, и поэтому этот вид параметров называется параметром-значением. [4]
Пример межпрограммных связей ( Банк-ДОС. [5] |
РОП вызывающей программы, поэтому пользователь должен позаботиться о передаче адреса начала РОП в подпрограмму, которая может работать с полями РОП через посредство фиктивной секции. [6]
В вызывающую программу возвращается последнее значение, присвоенное переменной CARRIER в подпрограмме. Все операции, предшествующие команде PARAMETER, не влияют на переданное значение. Эта особенность позволяет при необходимости экономить память. [7]
В вызывающей программе имя этой подпрограммы-функции должно быть описано в операторе EXTERNAL, так как оно используется в качестве фактического параметра при обращении к подпрограмме. [8]
В вызывающей программе имена А и D определяются как имена внешних подпрограмм. При первом обращении к подпрограмме SUB формальному аргументу ARG1 передается имя подпрограммы А, при втором - имя подпрограммы D. Имя В1, использованное в вызывающей программе, не нужно определять в операторе EXTERNAL, так как фактическим аргументом является не имя функции В1, а результат обращения к ней. [9]
В вызывающей программе имена А и D определяются как имена внешних подпрограмм. При первом обращении к подпрограмме SUB формальному аргументу ARG1 передается имя подпрограммы А, при втором - имя подпрограммы D. EXTERNAL, так как фактическим аргументом является не имя функции В1, а результат обращения к ней. [10]
В вызывающей программе указанные имена о & ьявляются внешними командой Ассемблера EXTRN. В модуле PROG эти имена командой Ассемблера ENTRY объявляются входными. [11]
В вызывающей программе имя этой подпрограммы-функции должно быть описано в операторе EXTERNAL, так как оно используется в качестве фактического параметра при обращении к подпрограмме. [12]
В вызывающей программе матрицы А, В, С могут быть описаны как двумерные массивы. Подпрограмма MUM работает с одномерными массивами, что сокращает число операций индексации. [13]
Возврат в вызывающую программу осуществляется с помощью оператора RETURN. Оператор RETURN в подпрограмме SUBROUTINE означает окончание выполнения подпрограммы и передает управление и аргументы в вызывающую программу. [14]
Управление передается вызывающей программе. [15]