Der Compiler übersetzt die eingegebenen Quelldaten in Maschinensprache und erzeugt auf diese Weise ein oder mehrere Objektmodule (OM Format) oder Bindelademodule (LLM Format). Der Benutzer kann veranlassen, dass einem Modul ein Symbolisches Adressbuch (LSD, List for Symbolic Debugging) zugeordnet wird, das die symbolischen Adressen der
Übersetzungseinheit speichert.
Objektmodule gibt der Compiler standardmäßig in die temporäre EAM-Datei der aktuellen Task aus. Die Objektmodule werden dort additiv, d.h. ohne Bezug zueinander, abgespeichert.
Die EAM-Datei gehört zu der Task, in der die Übersetzung stattfindet. Sie wird beim ersten Übersetzungslauf für diese Task angelegt und bei Task-Ende (LOGOFF-Bearbeitung) automatisch gelöscht. Soll das Ergebnis der Übersetzung also weiterverwendet werden, so ist der Benutzer dafür verantwortlich, dass der Inhalt der EAM-Datei sichergestellt bzw. weiterverarbeitet wird. Für die Sicherstellung von Objektmoduln aus der EAM-Datei in PLAM-Bibliotheken steht ihm dabei das Dienstprogramm LMS zur Verfügung (siehe Handbuch [ 11]).
Werden die übersetzten Objektmodule in der EAM-Datei nicht mehr benötigt, z.B. weil die Übersetzungseinheit noch zu korrigierende Fehler enthält, so empfiehlt es sich, die EAM-Datei spätestens vor dem nächsten Übersetzungslauf mit dem Kommando
/DELETE-SYSTEM-FILE SYSTEM-FILE= *OMF
zu löschen.
Bindelademodule (LLMs) schreibt der Compiler grundsätzlich als Elemente vom Typ L in eine PLAM-Bibliothek.
Falls das POSIX-Subsystem vorhanden ist, können die Module ins POSIX-Dateisystem ausgegeben werden. Diese Möglichkeit ist in Abschnitt „MODULE-OUTPUT-Option" beschrieben.
Bildung von Elementnamen bei der Ausgabe von Modulen in Bibliotheken
| Modulformat OM | Modulformat LLM |
Standardname abgeleitet aus | ||
nicht gemeinsam benutzbarer Code1) nicht segmentiert segmentiert | ID-Name 2) 1..8 3) PROGRAM-ID-Name 1..6 | ID-Name 2) 1..30 4) PROGRAM-ID-Name 1..30 4) |
gemeinsam | ID-Name 2) 1..7@ | ID-Name 2) 1..30 3) |
Tabelle 2: Elementnamenbildung bei Modulausgabe
1) | Modul erzeugt mit |
2) | ID-Name ist PROGRAM-ID-Name, CLASS-ID-Name oder INTERFACE-ID-Name |
3) | Der Name sollte in den ersten 7 Zeichen eindeutig sein. |
4) | Statt des Standardnamens kann mit |
5) | Modul erzeugt mit |