Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel zur Kontextverwendung

Das folgende Beispiel zeigt, wie Kontexte zur Vermeidung von Namenskonflikten und zur gesteuerten Befriedigung von Externverweisen verwendet werden können.

  1. Ein Programm, dass in einer Programmbibliothek als Element mit dem Namen PROG abgespeichert ist, wird aufgerufen. Der DBL bildet zur Befriedigung von Externverweisen den Standard-Link-Kontext LOCAL#DEFAULT.

    /START-EXECUTABLE-PROGRAM FROM-FILE=(LIBRARY=...,ELEMENT-OR-SYMBOL=PROG)

    Ergebnis

  2. Während des Programmablaufes ruft PROG den Makro BIND auf und aktiviert damit ein PASCAL-Unterprogramm.

    BIND SYMBOL=PASSUB,LIBNAM=...

    Ergebnis

  3. Im weiteren Programmverlauf ruft PROG das Unterprogramm CSUB auf, das in einer anderen Programmiersprache (in C) als PASSUB geschrieben ist, aber ebenfalls Laufzeitroutinen x und y benutzt. Zur Vermeidung von Namenskonflikten müsste der BIND-Makro wie folgt aufgerufen werden:

    BIND SYMBOL=CSUB,LIBNAM=...,...,LNCTX=CSUBCTX

    Ergebnis

  4. Ein weiteres Unterprogramm, das in C programmiert ist und in dem es unter anderem auch einen Externverweis auf den ENTRY A aus dem Hauptprogramm PROG gibt, wird aufgerufen. Externverweis V(A) soll mit ENTRY A aus PROG befriedigt werden; andere Externverweise sollen jedoch durch die C-Laufzeitroutinen befriedigt werden. Deshalb muss PROG das Unterprogramm CSUB2 wie folgt aufrufen:

    BIND SYMBOL=CSUB2,LIBNAM=...,...,LNKCTX=CSUBCTX,REFCTX=LOCAL#DEFAULT

    Ergebnis

    V(A) wird durch A in PROG befriedigt.
    V(x) wird durch x in CSUB befriedigt.