Die Verknüpfung von ILCS- mit gleichsprachigen Nicht-ILCS-Programmen (= Programme, die nicht von einem ILCS-fähigen Compiler erzeugt wurden) sind je nach Sprache (Compiler und zugehöriges Laufzeitsystem) unterschiedlich geregelt. Im folgenden werden nur für die CRTE-Sprachen COBOL und C sowie für Assembler die Regelungen aufgeführt, die bei der Verknüpfung von Nicht-ILCS- mit ILCS-Programmen zu beachten sind. Die Regelungen für die anderen Sprachen (z.B. Fortran, Pascal) sind in den entsprechenden Benutzerhandbüchern beschrieben.
COBOL85
Die Verknüpfung von Nicht-ILCS-Programmen (d.h. mit COBOL85 V1.0 erzeugte Programme) mit ILCS-Programmen ist grundsätzlich möglich. Die Programmkommunikation über ILCS ist aber nur gewährleistet, wenn das Hauptprogramm ein ILCS-Programm ist. Wenn das Hauptprogramm ein Nicht-ILCS-Programm ist, gelten auch alle aufgerufenen ILCS-Unterprogramme als Nicht-ILCS-Programme.
COBOL2000
Die Verknüpfung von Nicht-ILCS-Programmen (d.h. mit COBOL85 V1.0 erzeugte Programme) mit ILCS-Programmen ist grundsätzlich möglich.
Da COBOL2000 intern in jedem Fall die ILCS-Infrastruktur nutzt, wird beim Aufruf von COBOL2000-Modulen ILCS initialisiert, auch wenn das Hauptprogramm ein Nicht-ILCS-Programm ist.
C und C++
Nicht-ILCS-Programme (d.h. mit C V1.0 erzeugte Programme) und ILCS-Programme in C können problemlos miteinander verknüpft werden. Falls das aufrufende Hauptprogramm ein C-V1.0-Programm ist, wird vom C-Laufzeitsystem die ILCS-Umgebung automatisch nachinitialsiert. Die Verknüpfung ist bis zur C-Version 2.0 ohne jegliche Vorkehrung möglich, ab der C- bzw C++-Version 2.1A nur unter folgenden Voraussetzungen: Bei der Übersetzung muss in der COMPILER-ACTION-Option die Voreinstellung INLINE-OPTIMAL des LINKAGE-Parameters auf OUT-OF-LINE oder V1-COMPATIBLE-INLINE geändert werden.
Die Übersetzung eines C-Programms mit dem C++-Compiler muss im KR- oder ANSI-Modus erfolgen. Programme, die im CPLUSPLUS-Modus übersetzt werden, sind generell nicht mit C-V1.0-Objekten verknüpfbar.
Assembler
Der Aufruf eines ILCS-Programms durch ein Nicht-ILCS-Programm verlangt die Anpassung des Sicherstellungsbereichs (Save Area) des Nicht-ILCS-Programms an die ILCS-Konvention. Diese Anpassung kann der Benutzer durch folgende Maßnahmen vollziehen:
Der Sicherstellungsbereich des Nicht-ILCS-Objekts muss mit dem Makro IT0VSA erzeugt werden.
Vor dem Aufruf des ILCS-Objekts muss das Feld &P.VPCD mit der Adresse des aktuellen IT0PCD-Moduls versorgt werden. Diese Adresse lässt sich mit der Adresskonstanten A(IT0PCD) bestimmen.
Ein Beispiel hierzu finden Sie im Anhang.
Java
Für die Verknüpfung von C/C++-Programmen und Java-Programmen gibt es verschiedene Techniken, z.B. die Verknüpfung über das Java Native Interface (JNI). Nähere Informationen hierzu finden Sie in der Dokumentation zu Java.