Was ist COBOL?

Metalldachkonstruktion der Decke eines Bürogebäudes

Autoren

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

Was ist COBOL?

Common Business-Oriented Language (COBOL) ist eine an der englischen Sprache angelehnte kompilierte Programmiersprache, 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.

Eine der größten Stärken von COBOL ist die Unterstützung von Festkomma-Dezimalberechnungen mit großer Genauigkeit, eine Funktion, die in vielen traditionellen Programmiersprachen nicht unbedingt vorhanden ist. Diese Fähigkeit war einzigartig und Grund dafür, dass COBOL von vielen großen Finanzinstituten verwendet wurde.

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 Mrd. USD 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 Apps und Programmen in bestehenden Architekturen.

Die neuesten Tech-News – von Experten bestätigt

Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und darüber hinaus auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben ein Abonnement abgeschlossen.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

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. COBOL 2002 zielte darauf ab, COBOL-Anwendungen durch die Einführung objektorientierter Funktionen und anderer fortschrittlicher Programmierparadigmen in der Sprache kompatibler mit modernen Softwareentwicklungsverfahren zu machen. Diese Version leidet jedoch unter der mangelnden Unterstützung und der Nachfrage der Benutzer nach den neuen Funktionen. 

COBOL 14 führte neue Änderungen ein, einschließlich der Ersetzung portabler arithmetischer Ergebnisse durch IEEE 754-Datentypen, und der neueste Standard, COBOL 2023, bot zusätzliche neue Funktionen, die sich auf die Verbesserung der Interoperabilität von COBOL mit modernen Systemen konzentrierten.

Anwendungsentwicklung

Steigen Sie ein: Entwicklung von Enterprise-Anwendungen in der Cloud

In diesem Video erläutert Dr. Peter Haumer, wie die moderne Entwicklung von Unternehmensanwendungen in der Hybrid Cloud heute aussieht, indem er verschiedene Komponenten und Praktiken demonstriert, darunter IBM Z Open Editor, IBM Wazi und Zowe. 

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. Einige Beispiele:

IDENTIFICATION DIVISION.

PROGRAM-ID. YourProgramName

AUTHOR. Your name

DATE-WRITTEN. YYYYMMDD

COMMENT. "Short description of the program"

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.   hello-world.   PROCEDURE DIVISION.   DISPLAY  "Hello, world!"    

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

COBOL ist heute weniger populär als modernere Sprachen (wie Python, Java und JavaScript), war aber einst die am weitesten verbreitete Sprache in der Computerprogrammierung für Geschäftsanwendungen. Allerdings ist die COBOL-Entwicklung nach wie vor ein funktionaler und wichtiger Bestandteil 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 erhöhte Workloads ohne wesentliche Änderungen an der Codebasis zu bewältigen. So haben Unternehmen die Gelegenheit, ihre COBOL-basierten Systeme parallel zu ihrem Geschäft und ohne häufige Neuschreibungen oder Migrationen zu anderen Sprachen auszubauen.

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 mit anderen Sprachen und Technologien wie HTML, JSON, XML und generativer KI zusammenarbeiten.2 Durch Modernisierungs-Updates ist COBOL auch mit virtuellen und Cloud-Services interoperabel, wie z. B. Amazon Web Services (AWS), Microsoft Azure und IBM® Cloud – SQL-Datenbanken und andere moderne DevOps -Infrastrukturen.

Weiterführende Lösungen
IBM Power Servers  

IBM Power ist eine Familie von Servern, die auf IBM Power Prozessoren basieren und auf denen IBM AIX, IBM i sowie Linux ausgeführt werden können.

Power erkunden
IBM Cloud.Hybrid. Offen. Resilient.

IBM Cloud ist eine Enterprise-Cloud-Plattform, die für regulierte Branchen entwickelt wurde und KI-fähige, sichere und hybride Lösungen bietet.

Cloud-Lösungen kennenlernen
Cloud-Consulting-Dienste

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Mehr über Cloud-Services
Machen Sie den nächsten Schritt

IBM Cloud: KI-fähig, sicher und hybrid konzipiert. Eine Cloud-Plattform für Unternehmen, die selbst für die am stärksten regulierten Branchen entwickelt wurde und eine hoch belastbare, leistungsstarke, sichere und konforme Cloud bietet.

Cloud-Lösungen kennenlernen Weitere Informationen erhalten