Veröffentlicht: 19. April 2024
Mitwirkende: Chrystal R. China, Michael Goodwin
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.
Erleben Sie IBM watsonx® Code Assistant for Z in Aktion.
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.
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:
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“
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.
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.
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.
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.
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 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 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.
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.
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.
Der Prozess zum Erstellen eines Programms mit COBOL variiert je nach organisatorischen Gegebenheiten. In der Regel sind jedoch einige wichtige Schritte erforderlich.
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:
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.
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.
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.
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.
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.
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.
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.
Sehen Sie sich die Aufzeichnung an, in der unser Team darüber spricht, wie KI die Modernisierung von Mainframe-Anwendungen beschleunigt.
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.
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.
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