Startseite Themen COBOL Was ist COBOL?
Erkunden Sie die IBM Lösung zur Modernisierung von Mainframe-Anwendungen Abonnieren Sie Updates rund ums Thema KI
Illustration mit Collage aus Piktogrammen von Ausrüstung, Roboterarm, Mobiltelefon

 

Veröffentlicht: 19. April 2024
Mitwirkende: Chrystal R. China, Michael Goodwin

Was ist COBOL?

Common Business-Oriented Language (COBOL) ist eine kompilierte Programmiersprache auf hohem Niveau, die speziell für die Anforderungen der Unternehmensdatenverarbeitung entwickelt wurde. 

COBOL wurde mit Blick auf optimale Vielseitigkeit entwickelt. Seine Vielseitigkeit ermöglicht es Programmierern, eine lesbare, leicht zu wartende Programmiersprache zu verwenden, die auf Mainframe-Rechnern und -Betriebssystemen eingesetzt werden kann. COBOL war sogar eine der ersten Programmiersprachen, die vom American National Standards Institute (ANSI) und der International Organization for Standardization (ISO) standardisiert wurden.

Obwohl COBOL als Legacy-System gilt, wird es von vielen staatlichen und privatwirtschaftlichen Organisationen weiterhin zur Ausführung von Finanz-, Verwaltungs- und Geschäftsanwendungen verwendet. Tatsächlich dient die imperative, prozedurale und (in den neueren Versionen) objektorientierte Konfiguration von COBOL als Grundlage für mehr als 40 Prozent aller Online-Banking-Systeme.1

Es unterstützt auch 80 Prozent der persönlichen Kreditkartentransaktionen, wickelt 95 Prozent aller Geldautomatentransaktionen ab und treibt Systeme an, die täglich mehr als 3 Milliarden US-Dollar an Handel generieren.1 Aufgrund seiner überlegenen Stabilität und Rechenleistung spielt es weiterhin eine wichtige Rolle bei der Unterstützung von Unternehmen bei der Wartung von Anwendungen und Programmen in bestehenden Architekturen. 

Buchen Sie eine Live-Demo

Erleben Sie IBM watsonx® Code Assistant for Z in Aktion.

Ähnliche Inhalte

IBM Newsletter abonnieren

Geschichte von COBOL

COBOL wurde von einem Konsortium aus Regierungs- und Wirtschaftsorganisationen entwickelt, der Conference on Data Systems Languages (CODASYL), die 1959 gegründet wurde. COBOL wurde zum Teil von FLOW-MATIC abgeleitet, einer Sprache, die von der Informatikpionierin Dr. Grace Hopper entwickelt wurde. COBOL entstand im Rahmen einer Initiative des US-Verteidigungsministeriums, die eine Programmiersprache suchte, die in verschiedenen Betriebssystemen (Linux®, Windows, Unix, z/OS® usw.) und Hardwareumgebungen eingesetzt werden konnte.

Die erste Version der Programmiersprache COBOL wurde 1960 freigegeben. Und obwohl die COBOL-Programmierung ursprünglich nur als Überbrückungsmaßnahme gedacht war, erkannte das Verteidigungsministerium schnell ihren Nutzen und verpflichtete die Computerhersteller, sie anzubieten.

COBOL wurde schließlich 1968 als Computersprache standardisiert, woraufhin die COBOL-Programmierer mehrere Überarbeitungen und Modernisierungen vornahmen, darunter COBOL-61, COBOL-68, COBOL-74 und COBOL-85. Die jüngste Generation, COBOL 2002, versucht, COBOL-Anwendungen durch die Einführung objektorientierter Funktionen und anderer fortschrittlicher Programmierparadigmen in der Sprache kompatibler mit modernen Softwareentwicklungsverfahren zu machen. 

COBOL-Struktur

Das COBOL-Programm hat eine hierarchische Struktur, die aus Abteilungen, Abschnitten, Absätzen, Sätzen, Verben und Zeichenketten besteht. Der divisionale Charakter eines COBOL-Systems (das aus vier Divisions besteht) ermöglicht eine deutliche Trennung der einzelnen Aufgaben innerhalb von COBOL-Programmen.

COBOL-Divisionen sind wie folgt:

Identification Division

Die Identification Division ist die erste Division eines COBOL-Programms – und sie ist obligatorisch. Sie weist dem Programm einen Namen zu und liefert weitere Identifikationsinformationen wie Autor, Erstellungsdatum und eine kurze Beschreibung des Zwecks des Programms.

COBOL-Programme benötigen einen Abschnitt PROGRAM-ID, um innerhalb der Identification Division ausgeführt werden zu können. Zum Beispiel:

```

IDENTIFICATION DIVISION.

PROGRAMM-ID. YourProgramName

AUTOR. Ihr Name

DATUM-GESCHRIEBEN. JJJJMMTT

KOMMENTAR. „Kurze Beschreibung des Programms“

Environment Division

Die Environment Division legt die Laufzeitumgebung für ein Programm fest und definiert die Eingabe- und Ausgaberessourcen, die es verwenden wird. Sie ist in zwei Abschnitte unterteilt.

Es überrascht nicht, dass der Abschnitt Konfiguration Informationen über die Systemkonfiguration enthält, einschließlich des Computers und der Compiler-Funktionen, die verwendet werden. Aufgrund von Fortschritten bei den Compiler-Tools sind Konfigurationsabschnitte in modernen COBOL-Systemen, die in der Regel auf ihre Umgebung schließen und sich automatisch an sie anpassen können, jedoch weitgehend überflüssig geworden.

Im Abschnitt Eingabe/Ausgabe werden die Dateien und die zugehörigen Geräte angegeben, mit denen das Programm interagieren kann. Er enthält den Absatz FILE-CONTROL, der Dateinamen innerhalb des Programms externen Dateien zuordnet, und den Absatz I-O-CONTROL, der in der Regel Optimierungs- oder Sequenzierungsinformationen für Eingabe-/Ausgabeoperationen enthält.

Data Division

Die Data Division enthält alle Variablen-, Datei- und Konstantendefinitionen für das Programm. Wie die Umweltabteilung ist auch die Datenabteilung unterteilt.

Die Data Division listet jede Datei auf, aus der das Programm liest oder in die das Programm schreibt. Ein Dateibeschreibungseintrag definiert jede Datei und beschreibt die Struktur der Datensätze in der Datei.

Der Abschnitt Arbeitsspeicher definiert Variablen, die ihre Werte während des gesamten Programmlaufs beibehalten – einschließlich Zählern, Akkumulatoren, Konstanten und allen anderen Datenspeichern, die für I-O-Dateien nicht relevant sind.

Der in späteren Iterationen von COBOL eingeführte Abschnitt local-storage definiert Variablen, die bei der Bereitstellung des Programms oder der Methode zugewiesen und bei der Beendigung wieder freigegeben werden. Dies macht lokale Speicher besonders nützlich für rekursive Algorithmen und ablauffähige Programme.

Der Abschnitt Verknüpfung schließlich definiert Datenelemente, die von einem Programm an ein anderes weitergegeben werden.

Procedure Division

Die Procedure Division enthält den ausführbaren Code des Programms, der in Absätze und Abschnitte unterteilt ist, die den Code zur besseren Lesbarkeit und einfacheren Wartung in Codeblöcke strukturieren.

Zusätzliche Komponenten

Jede Abteilung eines COBOL-Systems kann Abschnitte und Absätze enthalten, die mit denen in menschlichen Sprachen vergleichbar sind. Abschnitte sind die benannten, logischen Unterteilungen innerhalb jeder Abteilung, die einen oder mehrere Absätze enthalten; sie dienen als modulare Code-Einheiten, die innerhalb des Programms aufgerufen oder aufgerufen werden können.

Absätze sind Sammlungen von Sätzen – die kleinsten ausführbaren Einheiten in einem COBOL-Programm –, die eine bestimmte Funktion erfüllen und durch einen eindeutigen Namen gekennzeichnet sind. Jede COBOL-Anweisung oder jeder Satz innerhalb eines Absatzes beginnt mit einem COBOL-Verb (wie MOVE, DISPLAY und ADD), das angibt, wie der Code ausgeführt werden soll.

Die grundlegendste und unsichtbarste Einheit der COBOL-Sprache ist ein Zeichen. Zeichenfolgen sind Zeichen oder Sequenzen aufeinanderfolgender Zeichen, die ein COBOL-Wort, ein COBOL-Literal oder einen Kommentareintrag bilden und durch Trennzeichen getrennt sind.

COBOL-Syntax

Die an das Englische angelehnte Syntax von COBOL ist selbstdokumentierend und nahezu selbsterklärend, wobei der Schwerpunkt auf Ausführlichkeit und Lesbarkeit liegt. Diese Funktion unterscheidet sie von kürzer gehaltenen Sprachen wie FORTRAN. Es kann auch mehrere verschiedene Datentypen unterstützen (z. B. numerische, alphanumerische und bearbeitete Daten), ist aber zur Ausführung eines Programms auf einige zusätzliche syntaktische Komponenten angewiesen.

Sätze und Aussagen

Sätze sind COBOL-Codezeilen, die aus einer oder mehreren Anweisungen bestehen, die durch einen Punkt abgeschlossen werden. Anweisungen hingegen sind die einzelnen Befehle, die Datei- und Datenverarbeitungsprozesse orchestrieren (unter anderem unter Verwendung von Verben wie ADD, START, DISPLAY und WRITE).

MOVE-Anweisungen übertragen beispielsweise Daten von einem Teil des Systemspeichers in einen anderen, COMPUTE-Anweisungen führen arithmetische Operationen durch und speichern die Ergebnisse als Variablen und READ-Anweisungen rufen Datensätze aus Eingabedateien ab.

Clauses

Clauses sind Bestandteile von Anweisungen, die die Ausführung einer Anweisung modifizieren oder qualifizieren können. Eine Bild-Clause wie zum Beispiel „PIC 9(3)“ definiert eine numerische Variable, die bis zu drei Ziffern enthalten kann.

Kontrollstrukturen

Iterative und bedingte Kontrollstrukturen in COBOL ermöglichen dem System die Steuerung des Datenflusses.

IF ... ELSE-Strukturen zum Beispiel implementieren bedingte Logik in COBOL, so dass das Programm je nach Auswertung einer Systembedingung verschiedene Codeblöcke ausführen kann. Und die PERFORM-Anweisung führt einen Absatz oder Abschnitt eine bestimmte Anzahl von Malen aus oder bis eine Bedingung erfüllt ist, ähnlich wie Schleifen in anderen Programmiersprachen.

Subprograms (Unterprogramme)

COBOL kann die modulare Programmierung durch die Verwendung von Unterprogrammen erleichtern, die vom Hauptprogramm oder anderen Unterprogrammen aus eingesetzt werden. Während interne Unterprogramme im selben Quellcode wie das aufrufende Programm (in der Procedure Division geschrieben) definiert werden, werden externe Unterprogramme separat kompiliert und bei Bedarf verknüpft.

Erstellen eines COBOL-Programms

Der Prozess zum Erstellen eines Programms mit COBOL variiert je nach organisatorischen Gegebenheiten. In der Regel sind jedoch einige wichtige Schritte erforderlich. 

  • Das Programm schreiben. Wenn ein Softwareentwickler zum Beispiel ein einfaches „Hallo, Welt!“-Programm schreiben wollte, würde er schreiben:

    ```

    IDENTIFICATION DIVISION. PROGRAM-ID. Hallo-Welt. PROCEDURE DIVISION. DISPLAY "Hallo, Welt!"

    Die Verwendung einer COBOL-kompatiblen integrierten Entwicklungsumgebung (IDE) oder eines Texteditors kann dabei helfen.

  • Kompilieren des Programms. Wie andere High-Level-Programmiersprachen muss COBOL-Code vor der Ausführung kompiliert werden. COBOL-Compiler (wie GnuCOBOL, Micro Focus und IBM® COBOL Compiler Family) übersetzen Programme in Maschinencode, damit die CPU des Computers sie verstehen und ausführen kann.

  • Ausführen des Programms. Wenn das Programm kompiliert ist, kann der Programmierer es auf dem Zielsystem ausführen. Unter der Annahme, dass keine Fehler vorhanden sind, folgt das Programm der in der Procedure Division definierten Datenverarbeitungslogik, um Daten zu verarbeiten. Der Ausführungsprozess umfasst in der Regel das Lesen von Daten aus Dateien und Datenbanken, die Durchführung von Datenberechnungen oder -transformationen und das anschließende Schreiben der Ergebnisse in Dateien oder Datenbanken.

  • Debuggen des Programms (falls erforderlich). Wenn das Programm Fehler oder Bugs enthält, müssen Programmierer diese identifizieren und beheben (ein Prozess, der als Debugging bezeichnet wird). Der Einsatz von Debugging-Tools und -Techniken kann diesen Prozess rationalisieren.
Vorteile der COBOL-Programmierung

Trotz der Verbreitung modernerer Sprachen (wie Python, Java, JavaScript) war COBOL einst die am häufigsten verwendete Sprache in der Computerprogrammierung für Geschäftsanwendungen. Auch heute noch ist die COBOL-Entwicklung ein funktionaler und wichtiger Teil der globalen Technologieinfrastruktur, insbesondere für Bankinstitute, Versicherungsunternehmen und Regierungsbehörden.

Wie die Beständigkeit der COBOL-Programmierung zeigt, bietet sie den Unternehmen, die sich für deren Einsatz entscheiden, unzählige Vorteile (trotz eines relativen Mangels an COBOL-Programmierern1), darunter:

Stabilität

COBOL ist für seine stabile, zuverlässige Leistung in geschäftskritischen Anwendungen bekannt. Systeme, die in COBOL geschrieben wurden, haben in der Regel eine hohe Betriebszeit und weisen nur wenige Ausfälle auf, was für den ununterbrochenen Betrieb von Finanzinstituten und staatlichen Diensten unerlässlich ist.

Skalierbarkeit

Entwickler können COBOL-Anwendungen skalieren, um steigende Arbeitslasten ohne wesentliche Änderungen an der Codebasis zu bewältigen. So können Unternehmen ihre COBOL-basierten Systeme parallel zu ihrem Geschäft und ohne häufige Neuschreibungen oder Migrationen zu anderen Sprachen ausbauen.

Datenhandling und Dateiverarbeitung

COBOL bietet außergewöhnliche Dateiverarbeitungsfunktionen. Es kann komplexe, umfangreiche Transaktionsdaten verarbeiten und unterstützt mehrere Dateizugriffsmethoden, einschließlich sequenzieller, indizierter und relativer Datenverarbeitung. Die Robustheit von COBOL bei der Prozessautomatisierung macht es ideal für Stapelverarbeitungsaufgaben, wie die Verarbeitung von Finanztransaktionen, die Verwaltung von Datenbanken und die Generierung von Berichten.

Interoperabilität

Die heutigen COBOL-Systeme können dank der Einführung von objektorientiertem COBOL und Schnittstellen zu neuen Programmiersprachen mit anderen Sprachen und Technologien (wie HTML, JSON, XML und generativer KI2) zusammenarbeiten. Die Objektorientierung erleichtert auch die COBOL Anwendungsintegration mit virtuellen und Cloud Services wie Amazon Web Services (AWS), Microsoft Azure und IBM Cloud®-SQL-Datenbanken und anderen modernen DevOps-Infrastrukturen.

Weiterführende Lösungen
IBM watsonx Code Assistant for Z

IBM watsonx Code Assistant® for Z ist ein Produkt, das mit Unterstützung durch generative KI die Modernisierung von Mainframe-Anwendungen zu geringeren Kosten und mit weniger Risiko als die derzeitigen Alternativen beschleunigt. Dieses Produkt bietet Anwendungsentwicklern Zugriff auf den gesamten Lebenszyklus einer Anwendung, einschließlich Anwendungserkennung und -analyse, automatisches Code-Refactoring und Umwandlung von COBOL in Java.

Erkunden Sie IBM watsonx Code Assistant für Z

IBM watsonx Code Assistant

IBM watsonx Code Assistant nutzt generative KI, um die Entwicklung zu beschleunigen und gleichzeitig die Kernprinzipien von Vertrauen, Sicherheit und Compliance zu gewährleisten. Entwickler und IT-Verantwortliche können die Modernisierung von Anwendungen beschleunigen und Automatisierungen vornehmen, um IT-Umgebungen schnell zu skalieren.

IBM watsonx Code Assistant erkunden

IBM COBOL Compiler Family

Die IBM® COBOL Compiler unterstützen die Betriebssysteme IBM z/OS®IBM AIX® und Linux®. Sie erhalten die Tools, um Ihre Programmentwicklung zu erweitern und Ihre vorhandenen Anwendungen zu nutzen. Sie können Ihren Anwendungsentwicklungsprozess strategisch für den sich schnell verändernden Markt von heute positionieren.

Erkunden Sie die IBM Cobol Compiler Family
 Ressourcen Code Assistant for Z bringt GenAI zur Modernisierung von Mainframe-Apps

Sehen Sie sich die Aufzeichnung an, in der unser Team darüber spricht, wie KI die Modernisierung von Mainframe-Anwendungen beschleunigt.

Bringen Sie App-Modernisierung und IT-Automatisierung mit GenAI auf die nächste Stufe

Erfahren Sie, wie Hybrid-Cloud-Management-Plattformen generative KI-gestützte Automatisierung einsetzen, um Unternehmen dabei zu unterstützen, von neuen Technologien zu profitieren, Kosteneinsparungen und Effizienzsteigerungen zu erzielen, die IT-Leistung zu verbessern und neue Dienste schneller bereitzustellen und zu skalieren.

Der CEO-Leitfaden zur generativen KI

Erfahren Sie, wie wichtig der Einsatz von generativer KI ist und wie sie jetzt und in Zukunft für die Geschäftspraxis von Vorteil sein kann.

Machen Sie den nächsten Schritt

Möchten Sie die Modernisierung von Mainframe-Anwendungen mithilfe von generativer KI beschleunigen? Überzeugen Sie sich anhand einer Live-Demo von den Möglichkeiten, die watsonx Code Assistant for Z bietet, oder sprechen Sie mit einem unserer Produktspezialisten.

Erkunden Sie IBM watsonx Code Assistant für Z Buchen Sie eine Live-Demo
Fußnoten

1 The World Depends on 60-Year-Old Code No One Knows Anymore (Die Welt hängt von einem 60 Jahre alten Code ab, den niemand mehr kennt) (Link befindet sich außerhalb von ibm.com), PC Mag, 1. Dezember 2023

2 Generative AI in Code Generation (Generative KI in der Codegenerierung) (Link befindet sich außerhalb von ibm.com), Inc42 Media, 24. März 2024