Compiler | Laufzeitsystem | PROGRAM ..., COMP= |
COBOL85 V2.3A | CRTE1 V10.0A auf BS2000 OSD/BC V10.0 CRTE1 V11.0A auf BS2000 OSD/BC V11.0 | ILCS / COB12 |
COBOL2000 ab V1.5A | CRTE1 V10.0A auf BS2000 OSD/BC V10.0 | ILCS / COB1 2 |
Anmerkungen zur Tabelle
1Es wird dringend empfohlen, bei Compilern und Laufzeitsystemen immer den aktuellen
Korrekturstand einzusetzen.
2 Die von COBOL85 oder COBOL2000 erzeugten Objekte sind gleichermaßen für ILCS-
Verknüpfung und Nicht-ILCS-Verknüpfung geeignet; es gibt keine Compiler-Option, um gezielt ILCS- oder Nicht-ILCS-Objekte zu erzeugen.
COMP=ILCS bedeutet, dass die ILCS-Verknüpfung verwendet wird. COMP=COB1 bedeutet Nicht-ILCS-Verknüpfung (= Verknüpfung alter Art).
Der Wert von COMP= wird nach folgenden Kriterien gesetzt:
COMP=ILCS wird angegeben, wenn alle aufgerufenen Unterprogramme ebenfalls ILCS-fähig sind.
COMP=COB1 muss immer dann angegeben werden, wenn der Cobol-Modul Unterprogramme aufruft, die nicht ILCS-fähig sind.
Compiler-Optionen
Die folgende Tabelle gibt einen Überblick darüber, welche COMOPT-Parameter in Abhängigkeit vom verwendeten Compiler gesetzt werden müssen und was dabei zu beachten ist.
COMOPT-Parameter | Compiler | Bemerkung |
CHECK-CALLING-HIERARCHY=NO | COBOL85 | Nur bei COMP=COB1, d.h. bei Nicht- |
MARK-LAST-PARAMETER=YES | COBOL2000 | Empfehlung |
Mischen von Cobol-Programmen
Wenn ein Teilprogramm mit COMP=COB1 generiert ist, dann darf es aus Modulen bestehen, die mit dem COB1-, COBOL85- oder COBOL2000-Compiler übersetzt wurden. Wenn das Teilprogramm mit COMP=ILCS generiert ist, dann darf es nur aus Modulen bestehen, die mit dem COBOL85- oder COBOL2000-Compiler übersetzt wurden.
Innerhalb einer Anwendung können Teilprogramme, die mit COMP=ILCS generiert sind, und Teilprogramme, die mit COMP=COB1 generiert sind, nebeneinander existieren.