Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Übersetzungseinheitliste

Jede Zeile einer Übersetzungseinheitliste ist in die folgenden Bereiche unterteilt:

(1)

Anzeigenfeld

Spalte 1 informiert über Fehler innerhalb der vom Benutzer vergebenen Nummerierung der Eingabesätze (Anzeige S) und über Verstöße gegen die maximale Zeilenlänge von 80 Zeichen beim Fixed-Format bzw. 248 Zeichen beim Free-Format (Anzeige T). Außerdem werden in ihm Sätze gekennzeichnet, die aus einer COPY-Bibliothek kopiert wurden (Anzeige C), die durch ein REPLACING bzw. REPLACE vereinbart wurden (Anzeige R) oder die zur SUB-SCHEMA-SECTION gehören (Anzeige D).
In Spalte 3 wird bei expandierten COPY-Elementen die Schachtelungstiefe angezeigt.

Ein Minuszeichen (-) in Spalte 1 kennzeichnet Zeilen, die auf Grund von Compiler-Direktiven ignoriert wurden.

(2)

Folgenummernfeld

Enthält eine von COBOL2000 vergebene, maximal 5-stellige Nummer, die zur Kennzeichnung des eingegebenen Übersetzungseinheit-Satzes dient. Diese Nummer dient zur eindeutigen Identifizierung der Quellcodezeilen. Sie findet sich in allen von COBOL2000 erzeugten Listen als Querverweisnummer wieder und wird zur Verknüpfung mit etwaigen Fehlermeldungen verwendet. Der maximale Wert beträgt 65535. Überschreitet eine Übersetzungseinheit diese Zahl, wird wieder von 0 an nummeriert.

(3)

Zu Beginn jeder Seite einer Übersetzungseinheitliste wird nach der Überschrift eine Zeile erzeugt, die Spaltenmarkierungen (V) enthält. Diese Markierungen entsprechen dem COBOL-Referenzformat und erleichtern es dem Benutzer, eine Verletzung des von COBOL geforderten Spaltenformats zu erkennen.

(4)

Vom Programmierer nutzbarer Bereich zur Markierung von Programmzeilen

(5)

Übersetzungseinheitbereich

Enthält den vom Benutzer eingegebenen Satz. Dabei ist zu beachten, dass nur abdruckbare Zeichen dargestellt werden.

Die folgenden Anteile sind nur in einer 'verdichteten' Liste vorhanden (siehe Parameter SOURCE=YES(CROSS-REFERENCE=YES) im Abschnitt „LISTING-Option".

(6)

Enthält eine Zeile mehr als eine Definition oder kommen in einer Übersetzungseinheit implizite Definitionen vor, dann werden diese im verdichteten Listing in zusätzlichen Zeilen dargestellt, in denen an Stelle des Quelltexts rechtsbündig nur der Name dieser Definition steht.

(7)

REL LOC
enthält die Position einer Datendefinition bzw. eines Kapitel oder Paragrafennamens relativ zum Modulanfang.

(8)

LENGTH
enthält die (dezimale) Länge des Bereichs im Modul, der einer Datendefinition zu geordnet wurde.

(9)

REF/DEF
enthält die Folgenummern der Zeilen, die auf eine Definition Bezug nehmen, zu sammen mit der Art dieser Referenz (Erläuterung der Referenzart siehe Abschnitt „Adressliste") sowie umgekehrt beim Bezugnehmer die Folgenummer der Definitionszeile. Treten mehr Querverweise auf, als in eine Zeile passen, werden Fortsetzungszeilen gebildet (siehe auch Parameter LINE-SIZE im Abschnitt „LISTING-Option").

Im Listenbeispiel sind die Übersetzungsmeldungen „eingemischt“ (siehe Parameter INSERT-ERROR-MSG im Abschnitt „LISTING-Option").

Als zweiter Teil der Übersetzungseinheitliste wird eine Bibliotheksliste ausgegeben. Ihr sind die Quellen zu entnehmen, aus denen das in dieser Übersetzung bearbeitete COBOL-Programm entstand. Für jede COPY-Anweisung wird eine Zeile angelegt, die folgende Informationen enthält:

(10)

Folgenummer der Programmzeile, in der die COPY-Anweisung auftritt

(11)

Linkname aus der COPY-Anweisung

(12)

Bibliothekstyp

(13)

Elementname

(14)

Datum

(15)

Versionsnummer, mit der das Bibliothekselement in der Bibliothek eingetragen ist. Datum und Versionsnummer sind nicht immer vorhanden.

(16)

Dateiname, unter dem die Bibliothek im Dateisystem eingetragen ist.

Besonderheiten der Übersetzungseinheitliste für Free-Format

Wesentliche, für den Benutzer sichtbare Unterschiede zwischen Fixed- und Free-Format betreffen das Listing.

Im Listing erfolgt ein Umbruch der Free-Format-Zeile zu Teilzeilen von bis je 80 Zeichen Länge. Diese Teilzeilenlänge ergibt sich aus der alten Zeilenlänge (Sequence-Area + Indikator-Area + Programmtext-Area + Comment-Area). Bei Free-Format handelt es sich über die gesamte Teilzeilenlänge um Programmtext.

Zeilen, die nicht länger als 80 Zeichen sind, werden wie bisher unter voller Ausnutzung des verfügbaren Platzes aufgelistet. Eine Zeile mit einer Länge von 81 bis 160 Zeichen wird in eine Teilzeile mit 80 Zeichen und in eine kürzere Teilzeile mit 1 bis 80 Zeichen zerlegt. Letztere Teilzeile erhält zur Kennzeichnung keine vorangestellte Zeilennummer, sondern nur ein einzelnes „+“-Zeichen.
Zeilen mit einer Länge von 161 bis 240 Zeichen werden analog in drei Zeilen zerlegt. Zeilen mit einer Länge von 241 oder mehr Zeichen werden in vier Teilzeilen zerlegt. Dabei ist die vierte Teilzeile höchstens 8 Zeichen lang, da die maximale Zeilenlänge mit 248 Zeichen begrenzt ist.

In dieser Form des Listings stehen die Teilzeilen direkt untereinander.

Wird das verdichtete Listing (siehe Abschnitt „LISTING-Option") eingeschaltet, sieht derselbe Listingausschnitt folgendermaßen aus:

Da die XREF-Ausgaben gelegentlich den Einschub zusätzlicher Leerzeilen erzwingen, ist nur durch das „+“Zeichen am Zeilenanfang erkennbar, ob eine solche eingeschobene Zeile wegen der XREF-Einträge generiert wurde, oder ob sie tatsächlich eine echte Teilzeile ist, die zufällig nur Leerzeichen enthält (siehe Beispiel Zeile 00085).

Die Zuordnung von XREF-Einträgen zu den entsprechenden Teilzeilen bezieht sich immer auf das erste Zeichen eines Datennamens.

Der Umbruch einer Free-Format-COBOL-Zeile führt nicht immer zu einem übersichtlichen Listing. Daher ist es sinnvoll, durch geeignete Gruppierung der Programmtext-Elemente ein übersichtlicheres Listing-Bild zu erreichen, indem z.B. die Programmtext-Elemente auf gedachten Tabulator-Positionen (20, 40 oder 80 Zeichen) ausgerichtet werden. In vielen Fällen ist es angebracht, sich auf eine Zeilenlänge von 80 Zeichen zu beschränken.