COBOL – Geschäftslogik im Mainframe
COBOL (Common Business Oriented Language, 1959) ist die Sprache der Banken, Versicherungen und Behörden. Noch heute laufen Milliarden Zeilen COBOL in Produktionssystemen – von Kontoführung über Gehaltsabrechnung bis zur Steuerverwaltung. Der freie Compiler GnuCOBOL (Kommando cobc) macht die Sprache auch auf Linux nutzbar.
Compiler
cobc --version– Version prüfencobc -x -o prog prog.cbl– ausführbares Programm bauencobc -m modul.cbl– Modul/Bibliothek kompilierencobc -x -Wall prog.cbl– mit Warnungen kompilieren- Typische Dateiendungen:
.cbl,.cob
Struktur: Die vier Divisionen
Jedes COBOL-Programm besteht aus vier Pflicht-Teilen:
IDENTIFICATION DIVISION.
PROGRAM-ID. hallo.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAME PIC X(20).
PROCEDURE DIVISION.
MAIN.
DISPLAY "Wie heisst du?".
ACCEPT NAME.
DISPLAY "Hallo, " NAME "!".
STOP RUN.
- IDENTIFICATION DIVISION: Name und Metadaten (
PROGRAM-ID) - ENVIRONMENT DIVISION: Dateien und Umgebung (optional in modernem COBOL)
- DATA DIVISION: Datendefinitionen,
WORKING-STORAGE SECTIONfür Variablen - PROCEDURE DIVISION: die ausführbare Logik
Daten: PIC-Klauseln
01 Name PIC X(20).– alphanumerisch (Text), 20 Zeichen01 Alter PIC 9(3).– Zahl mit 3 Stellen01 Betrag PIC 9(6)V99.– 6 Stellen vor, 2 Nachkommastellen (implizites Dezimalkomma)01 Wahr PIC 9 VALUE 0.– Schalter (0/1)
Wichtige Befehle
MOVE wert TO ziel– Wert zuweisen (auchMOVE a TO b)DISPLAY ...– Ausgabe,ACCEPT var– EingabeADD a TO b,SUBTRACT a FROM b,MULTIPLY a BY b,DIVIDE a INTO b– ArithmetikCOMPUTE erg = a * (b + c)– formelbasierte BerechnungIF bedingung THEN ... ELSE ... END-IF.EVALUATE var WHEN 1 ... WHEN OTHER ... END-EVALUATE.– MehrfachverzweigungPERFORM para.– Absatz ausführen,PERFORM UNTIL bedingung ... END-PERFORM– SchleifeGO TO para.– Sprung (verpönt, aber in Legacy-Code allgegenwärtig)STOP RUN.– Programm beenden
Beispiel: Schleife und Bedingung
PROCEDURE DIVISION.
MAIN.
MOVE 1 TO I.
PERFORM UNTIL I > 5
IF FUNCTION MOD(I, 2) = 0
DISPLAY I " ist gerade"
ELSE
DISPLAY I " ist ungerade"
END-IF
ADD 1 TO I
END-PERFORM.
STOP RUN.
COBOL bleibt relevant, weil Kernbankensysteme darauf laufen – oft kombiniert mit SQL für Datenbankzugriffe. Verwandte Begriffe: Datenbank, Compiler und Stack.