Eine Reihe von ILCS-Basisfunktionen können vom Sprach-Laufzeitsystem und den Anwendungen auch direkt genutzt werden.
ILCS ist eine Kombination aus Software und Schnittstellen-Konventionen:
ILCS enthält Laufzeitroutinen, die in der CRTE-Bibliothek zusammengefasst sind
In ILCS ist auch die den „Standard-Linkage-Konventionen im BS2000“ entsprechende Kommunikationsschnittstelle definiert; d.h. jedes von einem ILCS-fähigen Compiler erzeugte Modul ist entsprechend den Standard-Linkage-Konventionen für die Verknüpfung mit gleich- und verschiedensprachigen Programmen vorbereitet.
Die ILCS-Routinen sind Bestandteil der Liefereinheit CRTE und werden mit dieser immer in der aktuellsten Version ausgeliefert. Sie sind an dem Präfix „IT0“ zu erkennen.
Im Einzelnen bietet ILCS folgende Funktionen:
Programminitialisierung
Programmbeendigung
Konvention zur Verknüpfung verschiedensprachiger Programme
einheitliche Richtlinien zur Ereignisbehandlung
Speicherverwaltung (Stack- und Heap-Speicher)
einheitliche Behandlung der Programmmaske
Verarbeitung nichtlokaler Sprünge
ab C/C++ V3.0 Unterstützung der C++-Ausnahmebehandlung
Alle neueren Versionen der BS2000-Compiler sind ILCS-fähig:
Compiler | ab Version |
Ada | 2.1 |
ASSEMBH | 1.1 |
C | 2.0 |
C++ | 2.1A |
COBOL85 | 1.1 |
COBOL2000 | 1.1 |
FOR1 | 2.2 |
Pascal-XT | 2.2 |
PLI1 | 4.1 |
RPG3 | 3.0 |
UX-Basic | 3.0B |
Ferner ist auch openUTM ab Version 3.3 an ILCS angepasst.
Programme, die mit ILCS-fähigen Compilern übersetzt wurden, lassen sich auf einfache Weise mittels ILCS zu einem Programmsystem verknüpfen. Enthält ein Programmsystem Programme, die sich nicht gemäß den ILCS-Konventionen verhalten, müssen sie ggf. so
umgestaltet werden, dass sie den ILCS-Konventionen entsprechen. Andernfalls besteht- zumindest bei der Verknüpfung verschiedensprachiger Programme - die Gefahr der Inkompatibilität.
ILCS besteht aus folgenden Modulen:
dem Codemodul IT0SL@ und
dem Datenmodul IT0SL#.