Die CHAIN-Anweisung

Diese Anweisung hat eine ähnliche Bewandnis, wie die CALL-Anweisung. Daher sei auch, was die Zusätze wie USING, BY CONTENT und REFERENCE bzw. ON OVERFLOW und EXCEPTION betrifft, auf die entsprechenden Syntaxregeln der CALL-Anweisung verwiesen.
Wird bei CALL die Steuerung nach Ablauf des externen Unterprogramms wieder an das Hauptprogramm zurückgegeben, so geschieht dies bei CHAIN nicht. Das mit CHAIN aufgerufene Programm wird von der Platte in den Arbeisspeicher geladen und zur Ausführung gebracht. Es muß daher eigenständig lauffähig sein. Das 'rufende' Hauptprogramm wird dabei aus dem Speicher verbannt. Daher kann auch nicht dahin zurückgekehrt werden.
Ein rekursiver Programmaufruf ist mit Hilfe des CHAIN-Befehls möglich. Das bedeutet, daß ein Programm, welches mit CHAIN aufgerufen wurde hinterher wiederum mit CHAIN das Programm aufrufen kann, von dem es selber aufgerufen wurde. Bei der CALL-Anweisung springt die Steuerung an den Punkt im 'rufenden' Programm zurück, der auf die CALL-Anweisung folgt. Das 'rufende' Programm selber wird folglich nicht aufgerufen wie bei CHAIN.
Bei dem aufgerufenen Programm braucht es sich nicht um ein Cobol-Programm zu handeln.

...