Ein Cobol zum Schnuppern (3)

Die in Pascal bekannten Variablen Boolean sind in Cobol auch möglich. Der Stufennummer 88 zugeordnet, können Sie in Tabellen mehreren Bedingungen (Mengen) entsprechen. Dazu ein Beispiel:

01 BEDINGUNG PIC X VALUE SPACE.
88 WAHR VALUE "a" THRU "z", "ä", "ö", "ü", "ß".
88 FALSCH VALUE SPACE.

Die BEDINGUNG ist wegen des zugewiesenen Leerzeichens (SPACE) zunächst FALSCH. Erhält die BEDINGUNG ein kleines Zeichen des Alphabets, wird sie WAHR. In Utah Cobol können Sie solche CONDITIONALs leider nur direkt abfragen. Das heißt, die Frage IF WAHR ist möglich, während IF NOT WAHR nicht gestattet ist. IF IRGENDWAS NOT = WASANDERES dürfen Sie jedoch verwenden.

Die Wertzuweisung einer Variablen geschieht mit MOVE. Wegen der langen Schreibweise nicht gerade beleibt, erlaubt dieser Befehl aber einige brauchbare Varianten, ganze Tabellen zu bewegen oder aufzufüllen. WENN A, B und C zum Beispiel etwas längere alphanumerische Tabellen sind, dann lassen sich diese mit der Anweisung MOVE ALL „.“ TO A, B, C vollständig mit Punkten füllen.

Utah Cobol kennt den Befehl COMPUTE und die arithmetischen Symbole +, -, *, / nicht. Für die Markierung positiver oder negativer Zahlen ist die Verwendung von + und – allerdings erlaubt. Die Berechnung komplexer Formeln nimmt einige Programmzeilen in Anspruch, weil Sie auf die umständlichen Befehle ADD, SUBTRACT, MULTIPLY und DIVIDE angewiesen sind. Die zum Standard gehörende Exponentialfunktion ** fehlt ebenfalls.

Als Entschädigung für manche Unzulänglichkeiten verfügt Utah Cobol über eine ausgezeichnete Schnittstelle zu DOS, Assembler und SAYWHAT?!. Mit CALL SHELL „Dos-Kommando“ lässt sich bei entsprechender Speicherkapazität (256 KByte) ein beliebiger DOS-Befehl ausführen. Verwenden Sie die Bildschirm-Schnittstelle zu SAYWHAT?! mit DISPLAY SCREEN „Datei“, dann benötigen Sie schon 384 KByte Arbeitsspeicher. Assembler-Programme, die mit einem far return (retF) enden, lassen sich als EXE-Programm mit CALL Programm aufrufen. Parameter werden in den Registern BX, CX und DX übergeben. Bei mehr als drei Parametern steht in DX die Adresse des Beginns einer Adressenliste der restlichen Parameter. In der CONFIGURATION SECTION des Cobol-Programms müssen Sie den Beginnn des Code- und Datensegments Ihres Assembler-Programms eintragen. Utah-Cobol teilt Ihnen die Adressen nach erfolgter Compilation mit.

Die Form und Logik von Cobol ist Geschmacksache, denn sie ist im wahrsten Sinne des Wortes eine problemorientierte Programmiersprache und sollte auch nur als solche betrachtet werden. Mathematische oder grafische Anwendungen in Cobol zu programmieren ist ein Krampf. Trigonometrische Funktionen oder ähnliches gibt es nicht. Sie werden in Cobol-Anwendungen aber auch tatsächlich kaum benötigt. Momentan muss dafür noch die Assembler-Schnittstelle herhalten, wobei es schon Compiler gibt, die den fehlenden Befehlsvorrat ersetzen. Utah Cobol entspricht seiner Preisklasse und ist für Lernzwecke hervorragend geeignet. Wer es schafft, sich mit Utah Cobol anzufreunden, dem wird der Umgang mit den Profi-Compilern Freude bereiten.

Utah Cobol bietet keine Möglichkeit, Quell-Programme auf dem Drucker zu listen. Diese Routine formatiert ein Quell-Programm mit vierstelligen Zeilennummern dem ANSI-Standard entsprechend und gibt es auf dem Drucker aus. Nach 55 gedruckten Zeilen wechselt die Seite. Probleme mit anderen Cobol-Dialekten könnte es mit der BEEP- und END PROGRAMM-Anweisung geben, die in Utah Cobol die letzte physikalische Zeile im Programm sein muss.

Quelle: PC Magazin PLUS, Juli 1988