WikiDer > COBOL
COBOL | ||||
| Paradigma | Imperativ | |||
| erschien | 1959 | |||
| Entworfen von | Grace Hopper und andere | |||
| Aktuelle Version | COBOL 2002 | |||
| Typensystem | statisch, stark | |||
| Implementierungen | OpenCOBOL und Andere | |||
| Beeinflusst von | FLOWMATIC, COMTRAN | |||
| Einfluss auf | PL/1 | |||
| Betriebssystem | Multiplattform | |||
| Webseite | cobolstandards.com | |||
| ||||
COBOL ist ein Programmiersprache von dem 60er Jahre hauptsächlich in Geschäftsumgebungen verwendet. COBOL ist das Abkürzung von COmmon BUnternehmen Öorientiert lSprache (allgemeine geschäftsorientierte Sprache).
Herkunft und Standardisierung
COBOL wurde 1959 im Auftrag der amerikanischen het . entwickelt Verteidigungsministerium, einschließlich von Grace Murray Hopper. Es musste eine Sprache sein, die leichter zu lesen, zu schreiben und zu pflegen war als die bisher gebräuchlichen Sprachen (Monteur und FORTRAN) und die auch auf mehreren Computertypen verwendbar sein musste. Die erste Version von COBOL stammt aus dem Jahr 1960: COBOL-60.
Die Forderung nach Computerunabhängigkeit stellte wie bei praktisch jeder Computersprache ein Problem dar. Die Heimat von COBOL ist es IBM-Großrechner. Heutzutage läuft COBOL auch weiter Fenster und Unix. In der Vergangenheit war COBOL auch auf digitalen Computern üblich, da Mehrwertsteuer und Alpha, mit dem Betriebssystem OpenVMS.
Traditionell zielte die Sprache auf den einfachen Umgang mit (großen) Datendateien in a chargenorientierte Umgebung. Die einfache Programmierbarkeit der Verarbeitung von Datendateien in COBOL hat die Sprache in diesem Bereich bis heute an die Spitze gebracht.[1]
Die Gruppe, die die erste COBOL-Version eingerichtet hat, CODASYL (Conference On DATA SYSTEM Languages), veröffentlichte 1961 eine neue Version, COBOL-61, und in '62 und '63 wurden zusätzliche Ergänzungen gemacht: COBOL-61-erweitert. Ab diesem Zeitpunkt nahm der Sprachgebrauch zu und war nicht mehr auf den amerikanischen Markt beschränkt.
Die nächste Version, die COBOL-74Standard, wurde von Codasyl in enger Zusammenarbeit mit ANSIA.
Die Internationalisierung des COBOL-Einsatzes machte die Diskussion darüber, wer bestimmt, was in den Standard einfließt, zum Problem. Schließlich ist ANSI eine rein amerikanische Institution. Auf Initiative des Niederländers Wim Ebbinkhuijsen gerichtet ISO 1979 eine COBOL-Expertengruppe zur Überwachung der Normung eingerichtet. Nach der notwendigen Diskussion legte ISO den Inhalt der neuen Version fest: COBOL-85, erschienen 1985.
Die folgende Version des Standards wurde 2002 veröffentlicht: COBOL 2002. In dieser Version ist COBOL a Multiparadigmen-Programmiersprache werden, weil es jetzt auch möglich ist objektorientierten mit zu programmieren. Außerdem wurden viele neue Funktionen hinzugefügt, wie zum Beispiel benutzerdefinierte Funktionen und die VALIDATE-Anweisung, um Datenprüfungen auf einfache Weise durchzuführen.
Die aktuellste standardisierte Version ist die von 2014, in der unter anderem die Möglichkeit dynamischer Tabellen in die Sprache aufgenommen wurde.
Viele geschäftskritische Anwendungen in COBOL wurden noch weltweit entwickelt.[2] Eine Umfrage aus dem Jahr 2006 ergab jedoch, dass 16 % der IT-Führungskräfte COBOL sofort auslaufen wollten, 36 % es auslaufen ließen und weitere 25 % aus Kostengründen zurückgehalten wurden.[1]
Bild
COBOL hat ein altmodisches Image.[3] Das liegt daran, dass ein Großteil der COBOL-Software Jahrzehnte alt ist. Durch die vielen Anpassungen in verschiedenen Stilrichtungen und das Festhalten an veralteten Traditionen ist die Software oft umständlich und stark codiert. Die Programmiersprache selbst wird ständig erweitert und weiterentwickelt. Aus diesem Grund entscheiden sich viele Unternehmen heutzutage für die Migration von alter COBOL-Software auf modernes COBOL.[4]
In gewisser Weise hat die Kritik des Theoretikers auch Edsger Dijkstraße das Image von COBOL negativ beeinflusst. Dijkstra stellte in den 1970er Jahren fest: "Die Verwendung von COBOL lähmt den Verstand; seine Lehre sollte daher als kriminelle Handlung angesehen werden."[5] Diese Aussage wird manchmal als gültiges Argument gegen COBOL angesehen.
Trotz des altmodischen Image sind COBOL-Systeme auch 2019 in den Niederlanden im Einsatz[6], insbesondere bei Banken, Versicherungen und Behörden wie ING, ABN AMRO, Interpolis, RDW, DUO[7] und die Gasunion. sogar einige mobile Apps der Banken laufen im Backend noch mit COBOL.[8]
Bücher
Wim Ebbinkhuijsen hat das niederländische Standardbuch zu COBOL bis 2002 geschrieben und gepflegt. Ebbinkhuijsen hielt sich strikt an den COBOL-Standard. Das deutsche Standardwerk wird von Habib und Rozanski gepflegt. Sie beschränken sich auch auf genau die Standardsprache. Sie erwähnen keine Unterschiede zwischen früheren ANSI-Versionen und abgelaufene reservierte Wörter werden auch nicht erwähnt.
In den USA erfüllen Nancy und Robert Stern eine ähnliche Rolle. Sie bieten einen guten Einblick in Unterschiede zwischen/mit früheren COBOL-Versionen. Stern & Stern sind strikt auf die IBM Mainframe-Plattform beschränkt. Die Arbeit von Gary DeWard Brown enthält Informationen über COBOL sowohl auf IBM-Mainframes als auch auf Windows-PCs. Das Buch 'COBOL Unleashed' enthält allgemeine Informationen zu COBOL-Varianten für alle Arten von Plattformen und Schnittstellen.
Versionen und Variationen
COBOL ist eine der ersten Programmiersprachen. COBOL hat viele konkurrierende Programmiersprachen hinter sich gelassen. In den späten 1980er Jahren wurde geschätzt, dass etwa 80 % aller Unternehmenssoftware in COBOL programmiert wurden.
1989 wurden intrinsische Merkmale hinzugefügt, darunter einige, die de Millennium-Bug Bypass; die Notwendigkeit, diese Funktionen zu nutzen, wurde erst später in der Wirtschaft und in der Regierung erkannt. Auch die Hinzufügung mathematischer Funktionen war eine bemerkenswerte Neuheit.
2002 folgte die Erweiterung um objektorientiertes COBOL, Bildschirmsteuerung aus dem COBOL-Code (also plattformunabhängig), die Möglichkeit, Funktionen selbst zu programmieren, bitweise Operatoren, Gleitkomma-Variablen und vieles mehr.
COBOL ist seit 1968 eine standardisierte Programmiersprache. Darüber hinaus haben sich im Laufe der Jahrzehnte dialektähnliche Varianten dieser Programmiersprache gebildet: Abweichungen oder Erweiterungen. Viele Abweichungen sind entstanden, um die Umgebung, in der sie ausgeführt werden, optimal zu nutzen (Betriebssystem) oder die speziell verwendeten Hardware-.
Viele der Neuerungen in COBOL 2002 waren zuvor als Erweiterungen von Compiler-Herstellern eingebaut und damit bereits bewährt. Die älteste und bewährteste Innovation war die von Micro Focus entwickelte SCREEN SECTION, mit der die Bildschirmsteuerung von COBOL selbst programmiert werden kann.
Nachfolgend finden Sie eine Zusammenfassung der Versionen der standardisierten Version von COBOL:
| Jahr: | Name: |
|---|---|
| 1959 | COBOL |
| 1960 | COBOL 60 |
| 1961 | COBOL 61 |
| 1962 | COBOL 61 ERWEITERT |
| 1968 | COBOL 68 ANS |
| 1974 | COBOL 74 ANSIA |
| 1985 | COBOL 85 ANSI/ISO |
| 1989 | Erweiterung von COBOL 85 um die intrinsischen Funktionen ANSI/ISO |
| 1997 | OO COBOL mit vielen Compilerherstellern |
| 2002 | COBOL 2002 ANSI/ISO |
Nachfolgend eine Zusammenfassung einiger, teilweise historischer, Dialekte:
- IBM S/390 COBOL (US COBOL II)
- IBM ILE COBOL
- IBM Visual Age COBOL
- HP COBOL II
- PS Micro Focus COBOL für HP UX
- Micro Focus Net Express
- MBP Visual COBOL
- AcuCorp COBOL
- CA Realia
- Liant RM COBOL
- Tandem-SCOBOL (Bildschirm COBOL)
- Tandem-Non-Stop-COBOL
- Fujitsu COBOL
- Allgemeine Daten ICBOL
- Wang VS COBOL
- UNISYS COBOL
- Delta-COBOL
Die Open-Source-Community hat auch einige COBOL-Compiler-Projekte, nämlich:
Struktur
COBOL ist eine prozedurale Programmiersprache, a Programmiersprache der dritten Generation (auch: 3GL, aus dem Englischen Sprache der dritten Generation). Seit dem neuesten ISO/ANSI-Standard COBOL 2002 wurde COBOL um die Möglichkeit der objektorientierten Programmierung erweitert. Objektorientierte Sprachen werden normalerweise als Programmiersprache der vierten Generation. Wie zum Beispiel C COBOL ist eine multiparadigmatische Programmiersprache: Der Programmierer kann den Code sowohl prozedural als auch objektorientiert strukturieren.
Wie andere 3GL-Programmiersprachen besteht ein COBOL-Programm aus in Blöcken gebündelten Anweisungen. Die Aufteilung in Anweisungsblöcke resultiert aus der Zerlegung der Funktionalität des Programms.
Diese Anweisungsblöcke sind keine Funktionen wie beispielsweise in C. Das heißt, sie erhalten keine Parameter und geben keine Rückgabewerte zurück. Eine Parametrierung ist nur zwischen einzelnen Programmen möglich und ein Programm enthält in der Regel genau eine Quellcodedatei.
Die Art und Weise, wie COBOL-Programmierer ihre Programme in Anweisungsblöcke organisieren, ist weltweit sehr einheitlich. Dies liegt an der allgemeinen Akzeptanz von Jackson strukturierte Programmierung (JSP) als Standardentwurfsmethode für COBOL in den 1970er Jahren. Jacksons ursprüngliche Methodik wurde nicht mehr verwendet, aber es wurden viele Varianten entwickelt, bei denen Verbesserungen vorgenommen wurden.
Die Aussagen in COBOL sind englische Ausdrücke. Sie bestehen aus
- ein Verb im Imperativ,
- als ein direktes Objekt
- und schließlich möglicherweise ein oder mehrere Adverbialsätze.
Eine Ausnahme von dieser Regel sind Bedingungsanweisungen (wenn - sonst - dann und dergleichen). Da COBOL aus einfachem Englisch besteht, sind die meisten Anweisungen für Nicht-Programmierer direkt lesbar:
Nettopreis durch 100 dividieren Hilfsbetrag geben Hilfsbetrag mit Steuerprozentsatz multiplizieren Steuerbetrag angeben Steuerbetrag zum Nettopreis addieren Bruttopreis angeben wenn Anzahl der Käufe > 25 Bonus vom Bruttopreis abziehen
Und das gleiche könnte man auch so schreiben:
Steuerbetrag berechnen = Nettopreis / 100 * Steuerprozentsatz Bruttopreis berechnen = Nettopreis Steuerbetrag berechnen, wenn Mengeneinkäufe > 25 Bruttopreis berechnen = Bruttopreis - Bonusende-wenn
Traditionell wird der gesamte Programmtext in einem COBOL-Programm innerhalb der Zeilen zwischen Position 8 und 72 geschrieben und viel Text sollte erst an Position 12 beginnen. "Alle Texte" sind die Anweisungen, die Deklarationen von Variablen, die Verknüpfung mit Dateien und die wie. . Kommentartext dürfen außerhalb liegen, und Buchstaben, die versehentlich außerhalb der Grenze liegen, werden vom Compiler nicht als Programmtext verarbeitet. Heute erzwingen die meisten Compiler die traditionelle Positionierung zwischen den Bildschirmspalten 8 und 72 und ab Spalte 12 nicht mehr. Aus Gründen der Lesbarkeit bleiben viele Programmierer jedoch gerne dabei.
Die maximale Zeilenlänge betrug und beträgt oft noch 80 Zeichen. Das kommt von der begrenzten Breite von Lochkarten die früher verwendet wurde, um Programme in einen Computer zu laden. Die Bildschirme hatten die gleiche Breite von 80 Zeichen.
Nebenbei bemerkt gibt es eine alte, internationale Tradition für COBOL-Programmierer, Variablen "Felder" zu nennen.
COBOL hat eine lange Geschichte. Als Ergebnis ist eine große Lücke zwischen dem durchschnittlichen Stil in vielen existierenden Softwares und dem Stil des zeitgenössischen COBOL gewachsen. Bestehende Software ist aufgrund der vielen Anpassungen oft in einem Durcheinander von COBOL-Stilen geschrieben.
Modernisierungen werden jedoch selten durchgeführt und die Verbreitung von COBOL 2002 ist gering. Ein Grund dafür ist, dass alte COBOL-Umgebungen vom Programmierer oft verlangen, im alten Stil weiterzuprogrammieren.
Beispiele
Um eine kleine Vorstellung davon zu geben, wie die Programmiersprache strukturell aussieht, sind im Folgenden Beispiele für zwei Ausarbeitungen eines einfachen „Hallo Welt“ Anwendung.
Beispiel 1: COBOL . im Legacy-Stil
000010 IDENTIFICATION DIVISION.000020 PROGRAMM-ID. HALLOWORLD.000030 DATUM GESCHRIEBEN. 10.08.04 00:04.000040 AUTOR. UNBEKANNTER AUTHOR.000050000100 ENVIRONMENT DIVISION.000200 CONFIGURATION SECTION.000210 SOURCE COMPUTER. MAINFRAME.000220 OBJEKTCOMPUTER. MAINFRAME.000230000300 DATA DIVISION.000310 WORKING-STORAGE SECTION.000320 01 TEXT PIC X(12)000330 WERT "HALLO, WORLD".000410000500 PROCEDURE DIVISION.000600 MAIN-LOGIC SECTION.000700 MAIN-LOGIC-BEGIN.000710 DISPLAY TEXT MAIN- LOGIK-END.000700 STOP RUN.
Beispiel 2: COBOL im modernen Stil.
IDENTIFIKATION DIVISION.PROGRAM ID. Hallo-Welt.DATUM-GESCHRIEBEN. 15-07-2008.AUTHOR. Hugh Conway.*PROCEDURE DIVISION.display "Hello, World!"Run stoppen.
Als Kommentar verwendet COBOL die Sternchen (*) oder der Schrägstrich (/) an Position 7. Dieser Schrägstrich (/) wird beim Drucken von einem Seitensprung begleitet.
Beim traditionellen COBOL wird der gesamte Text über Position 72 hinaus als Kommentar behandelt. EIN Strich (-) an Position 7 bedeutet, dass ein Textelement, im Allgemeinen ein nicht numerisches Literal, von der vorherigen Zeile fortgesetzt wird.
Traditionell wird COBOL in Großbuchstaben programmiert, aber die Sprache unterscheidet nicht zwischen Groß- und Kleinschreibung. Seit der Die Neunziger erhöht die Verwendung von Kleinbuchstaben. Es ist kein Muss, den Punkt am Ende eines Anweisungsblocks in eine separate Zeile zu setzen, erweist sich jedoch als sehr nützlich, wenn einem Absatz Anweisungen hinzugefügt werden.
In der modernen Version wurde der Block in der Verfahrensabteilung nicht benannt, da es nur einen Block gibt. Dann macht eine Unterteilung in Absätze oder Abschnitte keinen Sinn. Die ENVIRONMENT DIVISION und die DATA DIVISION wurden weggelassen, da sie nichts enthalten müssen.
Fast jeder Compiler akzeptiert die Deklaration SOURCE und OBJECT COMPUTER, aber sie wird nur wirksam, wenn sich Quellcode und Compiler auf einem anderen Computer befinden als der Computer, auf dem das Ergebnis der Kompilierung gespeichert wird, dh über ein Netzwerk kompiliert wird. Das ist eine Ausnahmesituation. Diese Deklaration ist jedoch in vielen Legacy-Quellcodes enthalten, oft nur als Ergebnis von Copy-Paste-Arbeiten (in COBOL-74 waren diese Deklarationen noch obligatorisch).
In der Legacy-Version gibt es einen Abschnitt MAIN-LOGIC SECTION, der in die Absätze MAIN-LOGIC-BEGIN und MAIN-LOGIC-END unterteilt ist. Das ist ein völlig veraltetes Relikt, aber mindestens drei Viertel der Legacy-Quellcodes sehen so aus. Das hat zwei Ursachen. Erstens sind viele Programmierer bei der alten Idee geblieben, Abschnitte in Absätze zu unterteilen, obwohl ein JSP-Design (Jackson Structured Programming) die Aufteilung von Anweisungsblöcken in Unterblöcke nicht zulässt. Zweitens hat dieses Setup mit der alten Gewohnheit zu tun, mit GO TO zu arbeiten, die heute in fast jeder Programmiersprache als verwerflich gilt. Der Titel eines Absatzes in COBOL ist syntaktisch identisch mit einem Go-to-Label. Mit "GO TO MAIN-LOGIC-END" können Sie von jeder Stelle an das Ende des Abschnitts springen und ebenso an den Anfang zurückspringen.
Wenn die Absatzüberschriften MAIN-LOGIC-BEGIN und MAIN-LOGIC-END weggelassen werden, laufen auch Kompilieren und Ausführen einwandfrei. Noch bequemer ist es, einen Absatz des Abschnitts zu erstellen, indem Sie den Namen "MAIN-LOGIC SECTION" auf "MAIN-LOGIC" kürzen.
Die Punkte am Ende jeder Anweisung stammen aus COBOL-74, sind aber in der heutigen, seit Jahrzehnten gepflegten COBOL-Software noch üblich. Alles, was "ANZEIGE" sagt, außer "HALLO, WELT!" ergibt sich aus einer Abweichung vom COBOL-Standard.
Wie die Beispiele zeigen, besteht ein COBOL-Programm grundsätzlich aus vier Abteilungen, die wiederum unterteilt werden kann in Abschnitte (Es gibt Erweiterungen auf dem Markt, die weitere Abschnitte und/oder Unterteilungen ermöglichen, die hier nicht aufgeführt sind, aber sie gehören nicht zum Standard-COBOL). Gruppen von Aussagen sind Absätze und jede Zeile ist a Satz.
Anweisungen endeten früher mit einem Punkt, aber eine Anweisung unterscheidet sich von einem Satz. Eine verschachtelte IF-Anweisung, egal wie tief sie ist, sollte niemals durch einen Punkt unterbrochen werden. Seit COBOL-85 sorgen die sogenannten Scope-Terminatoren für die nötige Abgrenzung und Übersichtlichkeit. Dies sind Elemente, die mit END- beginnen: END-IF zum Schließen eines Anweisungsblocks bei einer IF-Bedingung, END-READ zum Schließen eines oder zweier Anweisungsblöcke innerhalb einer READ-Anweisung (nämlich mit AT END und NOT AT END) und bald.
- Das Identifikationsabteilung enthält allgemeine Informationen über das Programm: Name (erforderlich), Autor, Datum, an dem es geschrieben wurde, und es gibt noch einige weitere Optionen.
- Das Abteilung Umwelt dient der Herstellung von Verbindungen mit der Umwelt:
- Konfigurationsabschnitt - (Peripherie-)Geräte, Schnittstellen und andere technische Angelegenheiten. In Kontinentaleuropa die „CONFIGURATION SECTION“. ganz allgemein ein „SPECIAL-NAMES.“-Absatz, der eine „DECIMAL-POINT IS COMMA.“-Klausel enthält. Dies macht die angelsächsischen Funktionen von „.“ und „“, in numerischen Feldern ausgetauscht.
- Eingabe-Ausgabe-Bereich - Eingabe- und Ausgabedateien (ohne Display und Tastatur).
- Das Datenabteilung enthält die Deklarationen der Felder (=Variablen), die das Programm verwendet:
- File Section - Angabe der Dateistrukturen, wie z. B. deren Länge Aufnahmetyp und alle Felddeklarationen;
- Working-Storage Section - kann die Deklarationen der Datensatzfelder enthalten, dh wenn der Programmierer die Datensätze zur Verarbeitung hierher kopieren möchte, und muss die Deklarationen der programminternen Variablen enthalten.
- Verfahrensabteilung enthält die eigentlichen Anweisungen für den Prozessor, die Aussagen:
- in Blöcken, also Absätzen oder Abschnitten strukturiert, meist nach einer Variante des Jackson Structured Programming.
Siehe auch
Externe Links
Quellen, Anmerkungen und/oder Verweise
|
| Wikibooks hat mehr zu diesem Thema: Programmierkurs in COBOL. |
| Programmiersprachen |
|---|
ABAP ·ABC ·ActionScript ·Ada ·algol ·APL ·Assemblersprachen ·AWK ·B ·BASIC ·BCPL ·C ·C ·C♯ ·sauber ·Schermaschine ·COBOL ·COMAL ·Curry ·d ·Eiffel ·Erlang ·F♯ ·her ·fortran ·gehen ·Haskell ·Symbol ·J ·Java ·Kotlin ·lispeln ·Logo ·lua ·m4 ·ML ·Modula-2 ·Oberon ·Objekt Pascal ·Ziel c ·Ocamli ·Unze ·Pascal ·perl ·PHP ·PL/I ·PL/SQL ·Prolog ·Prova ·Python ·Rexx ·Rollenspiel ·Rubin ·Frieden ·SAS ·Reichweite ·planen ·Selbst ·Simula ·Smalltalk ·Schnell ·TCL ·Typoskript ·vala ·Visual Basic |