A range of ICLS basic functions can also be used directly by the language runtime systems and the applications.
ILCS is a combination of software and interface conventions:
ILCS comprises runtime routines which are grouped together in the CRTE library
It also defines the communication interface corresponding to the “standard linkage conventions in BS2000”, i.e. any module generated by an ILCS-compatible compiler is ready for linking with programs in the same or a different language in accordance with the standard linkage conventions.
The ILCS routines are part of the CRTE selectable unit and the latest version of the routines is always shipped with CRTE. They can be recognized by the prefix “IT0”
ILCS provides the following functions:
program initialization
program termination
convention for linking programs in different languages
standard guidelines for event handling
memory management (stack and heap memory)
uniform handling of program mask
processing of non-local branches
support for C++ exception handling in C/C++ V3.0 or higher
All recent versions of BS2000 compilers, as listed below, are ILCS-compatible.
Compiler | as of Version |
Ada | 2.1 |
In addition, openUTM is ILCS-compatible as of Version 3.3.
With the aid of ILCS, it is a simple matter to link programs compiled with ILCS-compatible compilers to form a program system. If a program system contains programs that do not behave as required by ILCS conventions, they must be modified to comply with the conventions. Otherwise incompatibility may be the result, particularly when linking programs in different languages.
The ILCS comprises
the code module IT0SL@ and
the data module IT0SL#.