Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Binden, Laden, Starten

Im Verlauf der Übersetzung erzeugt COBOL2000 Objektmodule (OM’s) oder Bindelademodule (LLMs), die anschließend in einer PLAM-Bibliothek oder in der temporären EAM-Datei der aktuellen Task zur Verfügung stehen.

Das Programm kann jedoch in dieser Form nicht ablaufen, da sein Maschinencode noch nicht vollständig ist: Jedes Modul enthält Verweise auf externe Adressen, d.h. auf weitere Module, die ihn zur Ausführung ergänzen müssen. Der Compiler erzeugt diese Externverweise bei der Übersetzung aus einem oder mehreren der folgenden Gründe:

  • Das COBOL-Programm enthält Anweisungen, die

    • komplexe Routinen auf Maschinencode-Ebene erfordern (z.B. SEARCH ALL, INSPECT) oder

    • Schnittstellen zu anderen Softwareprodukten oder zum Betriebssystem bilden (z.B. SORT oder Ein-/Ausgabeanweisungen wie READ, WRITE).

    Dies trifft auf alle COBOL-Programme zu, da in diese Kategorie auch die Routinen zur Programminitialisierung und -beendigung fallen. Die Maschinenbefehlsfolgen für diese Anweisungen werden nicht bei der Übersetzung erzeugt; sie liegen bereits als fertige Module in einer Bibliothek vor, dem Laufzeitsystem. Der Compiler trägt für jede solche COBOL-Anweisung in das Modul einen Externverweis auf das zugehörige Modul im Laufzeitsystem ein.
  • Das COBOL-Programm ruft ein externes Unterprogramm auf.

    CALL-Anweisungen im Format „CALL literal“ veranlassen den Compiler, an den entsprechenden Stellen im Modul Externverweise für den Bindelauf zu erzeugen.CALL-Anweisungen im Format „CALL bezeichner“ bewirken, dass der dynamische Bindelader die entsprechenden Module zum Ablaufzeitpunkt dynamisch nachlädt (siehe Kapitel „COBOL2000 und POSIX").

  • Das COBOL-Programm ist mit COMOPT GENERATE-SHARED-CODE=YES (in SDF: SHAREABLE-CODE=YES) übersetzt.

    Der Compiler erzeugt ein nicht gemeinsam benutzbares Datenmodul und ein gemeinsam benutzbares Codemodul (siehe Abschnitt „Gemeinsam benutzbare COBOL-Programme"). Im Datenmodul existiert ein Externverweis auf das zugehörige Codemodul.

  • Das COBOL-Programm verwendet Sprachmittel für Objektorientierung.Der Compiler erzeugt Externverweise für alle nicht-parametrisierten Klassen bzw. Interfaces, die im REPOSITORY Paragrafen spezifiziert sind.

  • Das COBOL-Programm enthält mit External beschriebene Daten. Der Compiler legt dafür Common-Bereiche an.

Die Verwendung einiger Sprachmittel in Programmen verlangt beim Binden bzw. Laden zusätzliche Module, die nicht Bestandteil des Laufzeitsystems (CRTE) sind, sondern im System verfügbar sein müssen. Diese müssen entweder statisch eingebunden werden (siehe Abschnitt „Statisches Binden mit TSOSLNK" und Abschnitt „Binden mit dem BINDER") oder beim dynamischen Binden über entsprechende Linknamen BLSLIBnn zugewiesen werden (siehe Abschnitt „Dynamisches Binden und Laden mit dem DBL"). Im Einzelnen betrifft das:

  • SORT:

    Modul SORT80 mit (u.A.) Entries ILSORT und SORTZM1;
    Dieses Modul ist üblicherweise in der Bibliothek $TASKLIB vorhanden.

  • Bibliothekselement als zeilensequenzielle Datei:

    Modul LMSUP1;
    Dieses Modul steht üblicherweise in der Bibliothek $LMSLIB.

  • nationale Daten (UTF-16):

    Modul GNLADPT;
    Wo dieses Modul zu finden ist, entnehmen Sie dem Handbuch „XHCS (BS2000/OSD)“ [33].

  • XML: