Für die Beschreibung zeitlicher und logischer Abhängigkeiten, d.h. die Beziehung zwischen den Elementen, gibt es folgende Möglichkeiten:
Delta-Baum
Ein Delta-Baum ist eine Menge von Elementen, die durch die Beziehung "Element-istNachfolger-von" gebildet wird.
Namenskonventionen
Innerhalb eines Zweiges eines Delta-Baums haben die Elemente den gleichen Namen und Typ. Sie unterscheiden sich nur durch ihre Version.
Referenzeinträge
Referenzeinträge sind Einträge im Sekundärinhaltsverzeichnis der Bibliothek. Sie entstehen, wenn der Anwender beim Schreiben eines Elementes Referenzsätze (Satzart 163) der Form <Sekundärname><Sekundärattribut> erzeugt. Das Layout der Satzart 163 ist in [1] beschrieben.
Durch die Referenzeinträge wird die Beziehung „Ein bestimmter <sekundärname> und <sekundärattribut> kommt im Element vor“ dokumentiert. Die typweise Sortierung der Referenzeinträge erlaubt die Abfrage:
„In welchem Element des Typs TYPE kommt ein bestimmter Referenzeintrag vor?“.
Dies wird durch die folgende LMS-Anweisung realisiert:
//SHOW-ELEMENT-ATTRIBUTES *LIB(*STD,*,TYPE=...,SECONDARY-NAME=..,
SECONDARY-ATTRIBUTE=...,)
Diese Beziehung wird bei Modulen (Typ R oder L) als Basis der Autolink-Funktion (siehe [5]) verwendet; Referenzeinträge sind z.B. <name><CSECT> bzw. <name><ENTRY>.
PLAM gewährleistet die Konsistenz der Beziehung; für die Erzeugung und Vollständigkeit der Beziehungen ist der Benutzer verantwortlich.
Abhängigkeiten vom Elementtyp
LMS besitzt Anweisungen,
die unabhängig vom Elementtyp sind (ohne Bezug auf den Elementinhalt) und
andere, die sich am Elementtyp orientieren. Im letzteren Falle werden nur einige wenige Standardtypen zugelassen; benutzerdefinierte Typen müssen sich aus diesen Typen ableiten. Elemente mit abweichendem Typ können nicht bearbeitet werden.
Die folgende Tabelle zeigt, welche Elementtypen bei den einzelnen LMS-Anweisungen möglich sind und welche Typprüfungen LMS während des LMS-Laufs vornimmt:
Nur wenn die in der Spalte Typprüfung aufgeführten Bedingungen zutreffen, wird die Anweisung ausgeführt.
| Elementtyp | |||
Quelle | Ziel | Typprüfung | ||
SHOW-ELEMENT SHOW-ELEMENT- DELETE-ELEMENT MODIFY-ELEMENT- FIND-ELEMENT | alphanum-name1..8 | - | ||
MODIFY-ELEMENT- COPY-ELEMENT PROVIDE-ELEMENT RETURN-ELEMENT | alphanum-name1..8 | alphanum-name1..8 | BT(q)=:=BT(z)) | |
COMPARE-ELEMENT | alphanum-name1..8 | alphanum-name1..8 | BT(p)=:=BT(s) | |
EDIT-ELEMENT | S, M, P, D, J, X, | S, M, P, D, J, X, | ||
MODIFY-ELEMENT | R, C, L | R, C, L | BT(q)=:=BT(z) | |
S, M, P, D, J, X, | S, M, P, D, J, X, | BT(q)=:=BT(z) | ||
MODIFY-LOGGING- | - | S, M, P, D, J, X, | ||
ADD-ELEMENT | „text“ | (I)SAM-f | S, M, P, D, J, X, | |
„blocks“ | PAM-file | X abgeleiteter Typ | ||
„module“ | file,*OMF | R | ||
„phase“ | PAM-file | C | ||
“link and load modul“ | PAM LLM | L | ||
EXTRACT-ELEMENT | S, M, P, D, J, X, | (I)SAM-file | ||
X abgeleiteter Typ | PAM-file | |||
R | (I)SAM-file | |||
C | PAM-file | |||
L | PAM LLM |
BT BT(q)/BT(z) BT(p)/BT(s) Standardtyp | Basistyp (Name des Typs des höchsten Knotens) Basistyp des Quell- bzw. Zielelements Basistyp des Primär- bzw. Sekundärelements ein Zeichen lang bzw. mit $ oder SYS am Anfang |
abgleiteter Typ | von den aufgezählten Typen abgeleitet; |
=:= | Die Typen links und rechts dieses Zeichens sind entweder gleich oder beide textartig. |