Was ist COBOL?
COBOL (Common Business-Oriented Language) wurde 1959 für Wirtschaft und Verwaltung entworfen, mit großem Einfluss von Grace Hopper. Die Sprache liest sich wie englische Sätze (ADD 1 TO ZAEHLER, IF BETRAG > 100) und rechnet präzise mit Dezimalzahlen (wichtig bei Geld). Heute laufen laut Schätzungen mehrere hundert Milliarden Zeilen COBOL in Banken, Versicherungen, Behörden und Fluglinien, oft auf Großrechnern (Mainframes). Wer COBOL beherrscht, wird dort dringend gesucht.
COBOL-Programme sind in Divisions gegliedert:
| Division | Inhalt |
|---|---|
IDENTIFICATION DIVISION | Programmname, Autor |
ENVIRONMENT DIVISION | Dateien, Umgebung |
DATA DIVISION | alle Variablen und Dateisätze |
PROCEDURE DIVISION | die Programmlogik |
Compiler und Ausführen
Wir nutzen GnuCOBOL (kostenlos):
cobc -x -free hallo.cob -o hallo # -x: ausführbares Programm, -free: freies Format
./halloKlassischer COBOL-Code hat ein festes Spaltenformat (Code in Spalten 8 bis 72). Mit -free darfst du frei einrücken; alle Beispiele hier nutzen das freie Format.
Das erste Programm
IDENTIFICATION DIVISION.
PROGRAM-ID. HALLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAME PIC X(20) VALUE "Mia".
01 ALTERSJAHRE PIC 99 VALUE 17.
PROCEDURE DIVISION.
DISPLAY "Hallo COBOL!".
DISPLAY "Name: " NAME.
DISPLAY "Alter: " ALTERSJAHRE.
STOP RUN.Ausgabe
Hallo COBOL! Name: Mia Alter: 17
- Jede Anweisung endet mit einem Punkt (oder wird durch ein
END-...abgeschlossen) DISPLAYgibt Text aus,STOP RUNbeendet das ProgrammWORKING-STORAGE SECTIONenthält die Variablen01ist die Stufennummer;PIC X(20)beschreibt das Format (siehe nächstes Kapitel)- Kommentare: eine Zeile mit
*>(freies Format)
Rechnen auf COBOL-Art
IDENTIFICATION DIVISION.
PROGRAM-ID. RECHNEN.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3) VALUE 17.
01 B PIC 9(3) VALUE 5.
01 SUMME PIC 9(4).
01 REST PIC 9(3).
01 QUOT PIC 9(3)V99.
PROCEDURE DIVISION.
ADD A TO B GIVING SUMME.
DISPLAY "Summe: " SUMME.
SUBTRACT B FROM A GIVING SUMME.
DISPLAY "Differenz: " SUMME.
MULTIPLY A BY B GIVING SUMME.
DISPLAY "Produkt: " SUMME.
DIVIDE A BY B GIVING QUOT REMAINDER REST.
DISPLAY "Quotient: " QUOT " Rest: " REST.
COMPUTE SUMME = (A + B) * 2 - 1.
DISPLAY "COMPUTE: " SUMME.
STOP RUN.Ausgabe
Summe: 0022 Differenz: 0012 Produkt: 0085 Quotient: 003.40 Rest: 000 COMPUTE: 0043
So führst du den Code aus: Datei hallo.cob speichern, mit cobc -x -free hallo.cob übersetzen und ./hallo starten (GnuCOBOL, z. B. über sudo apt install gnucobol).
Merke
- COBOL ist für Verwaltung und Finanzen gemacht und hat exakte Dezimalarithmetik
- Programm = vier Divisions; Anweisungen enden mit Punkt
DISPLAYzur Ausgabe,STOP RUNzum Beenden- GnuCOBOL:
cobc -x -free datei.cob - Rechnen mit
ADD,SUBTRACT,MULTIPLY,DIVIDE,COMPUTE
Aufgabe
Schreibe ein Programm, das zwei Zahlen addiert und das Ergebnis ausgibt.