Die IDENTIFICATION DIVISION dient zur Kennzeichnung (Identifikation) eines Programms. Die ENVIRONMENT DIVISION beschreibt die Hardware-Umgebung und die verwendeten Dateien sowie deren Organisation. Sämtliche Variablen werden in der DATA DIVISION deklariert. Die PROCEDURE DIVISION enthält alle Anweisungen eines Cobol-Programms.
Bei Bedarf werden die ENVIRONMENT- und die DATA DIVSION noch in SECTIONs mit genau definiertem Namen in einer bestimmten Reihenfolge unterteilt. Utah Cobol gestattet, auf die CONFIGURATION SECTION in der ENVIRONMENT DIVISION zu verzichten. Bei anderen Compilern müssen Sie diese SECTION angeben, auch wenn Sie keine weiteren Eintragungen zur Hard- und Software Ihres PCs vornehmen wollen.
Der Punkt als Satzzeichen spielt in Cobol eine besonders wichtige Rolle. Hinter jede DIVISION, SECTION und jeden PARAGRAPHen müssen Sie wie in der natürlichen Sprache einen Punkt setzen. Jeder logisch zusammengehörende Satz (SENTENCE) endet mit einem Punkt. Ein falsch gesetzter Punkt in der PROCEDURE DIVSION kann katastrophale Fehler in der Programmausführung hervorrufen. Durch die Interpunktion steuern Sie nämlich den Ablauf des Programms. Dazu ein Beispiel:
1 IF LOESCHEN 2 DISPLAY "Alles wird gelöscht!". 3 PERFORM LOESCHE-ALLES.
Der Programmierer hat in Zeile 2 einen Punkt zuviel gesetzt und damit die IF-Anweisung beendet. Deshalb wird in Zeile 3 alles gelöscht, auch wenn die Bedingung LOESCHEN in Zeile 1 nicht wahr ist. Das Setzen oder Nichtsetzen eines Punktes bleibt also in der PROCEDURE DIVSION Ihnen überlassen, wenn Sie nicht gerade zwei zusammengehörende Wörter wie zum Beispiel PERFORM UNTERPROGRAMM durch einen Punkt voneinander trennen.
Die Namen von Prozeduren (SECTIONs und PARAGRAPHs) und Daten dürfen 30 Zeichen lang sein und müssen mit einem Buchstaben beginnen. Utah Cobol akzeptiert für die Bezeichnung von Prozeduren und Daten neben den zehn Ziffern und dem Bindestrich leider nur Großbuchstaben. Der ANSI-85-Standard erlaubt die Verwendung von Kleinbuchstaben, wodurch sich Programme angenehmer lesbar gestalten lassen.
Einige Bezeichnungen sind in Cobol reserviert, die Sie auch nur in bestimmten Zusammenhängen verwenden dürfen. So ist die WORKING-STORAGE SECTION in der DATA DIVISION für die Deklaration aller im Programm verwendeten Variablen, Konstanten und Tabellen verantwortlich. Die FILE SECTION dient der Beschreibung der Sätze (RECORDS) einer Datei.
Ein wichtiger Grund für die Entwicklung von Cobol war, in Dateien Selektionen unterschiedlichster Art treffen zu können. Cobol verfügt deshalb über eine ausgeklügelte Handhabung von SEQUENTIAL- und RANDOM-Dateien. Ein FILE STATUS, ähnlich dem IOresult in Turbo Pascal, wird bei jeder Disketten-Operation aktualisiert. Bis zu 50 Dateien lassen sich in Utah Cobol gleichzeitig bearbeiten.
Leider unterstützt Uta Cobol eine index-sequentielle Zugriffsmethode (ISAM) auf Dateien nur zum Teil, weil das Runtime-Modul Btrieve der amerikanischen Firma Softcraft im Lieferumfang nicht enthalten ist. Die entsprechenden Deklarationen und Anweisungen in einem Cobol-Programm werden vom Compiler gecheckt, bleiben aber während der Ausführung des Programms ohne Wirkung. Laut Hersteller unterstützt Btrieve ISAM-Dateien in Cobol-, Basic-, Pascal- und Fortran-Programmen. Eine Datei kann bis 24 Schlüssel (ALTERNATVE KEY) besitzen, wobei jeder Index 255 Zeichen lang und in einer Datei mehrfach vorhanden sein darf. Die Größe eines Datensatzes ist auf 4 KByte begrenzt. Der Preis für Btrieve steht mit 690 Mark in keinem Verhältnis zum Utah Cobol-Compiler.
Die Datenfelder eines Cobol-Programms sind in Stufennummern von 01 bis 49 hierarchiert. Dadurch ist es möglich, mehrere Datenfelder mit nur einem Namen anzusprechen. Der Name dieser Datengruppe kann gemeinsam mit anderen Datenfeldern gleicher Stufennummer einem weiteren Namen untergeordnet sein und so fort. Die PICTURE-Klausel unterscheidet alphabetische, alphanumerische, numerische und numerisch editierte Daten voneinander und detailliert sie bis auf das letzte Byte. Hier liegt eine der wesentlichen Stärken von Cobol. Eine Menge Programmieraufwand können Sie sich zum Beispiel mit folgender Definition sparen:
77 DM PIC Z,ZZZ,ZZ9.99 VALUE ZERO.
Die neunstellige, numerisch editierte Variable DM entspricht dem Level 77, das heißt, ihr sind keine weiteren Daten untergeordnet. Führende Nulen werden an den mit Z markierten Stellen durch Leerzeichen ersetzt. DM hat zwei Stellen nach dem Dezimalpunkt, ist in 1000ern formatiert und mit dem Wert 0 vorbelegt. Durch die Eintragung DECIMAL POINT IS COMMA im SPECIAL-NAMES-Paragraph der CONFIGURATION SECTION können Sie für die deutsche Bearbeitung Kommas durch einen Punkt ersetzten. Außer der figurativen Konstante ZERO gibt es in Cobol noch SPACE, QUOTE, HIGH-VALUE und LOW-VALUE.
Utah Cobol erlaubt die Verwendung von hexadezimalen Zahlen. Damit können Sie Bildschirm-Attribute setzen und den Drucker mit Steuerzeichen versorgen. Mit der OCCURS-Klausel werden Tabellen generiert. Sie dürfen in Utah Cobol nur eindimensional sein und eine Größe von 4095 Byte nicht überschreiten, was die professionelle Anwendung schwierig macht.
Quelle: PC Magazin PLUS, Juli 1988