35
COmmonBusinessOrientedLanguage

CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

Embed Size (px)

Citation preview

Page 1: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

COmmonBusinessOrientedLanguage

Page 2: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

GLIEDERUNG Historisches

Allgemein Grace Hopper

Entwicklung / Standardisierung

CODASYL X/Open ANSI

Syntax (C-80)

Allgemeines Besonderheiten

COBOL heute

Page 3: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

HISTORISCHES [1/5]

Motivation:

hardware-unabhängige Sprache zur Erstellung von Programmen für den betriebswirtschaftlichen Bereich

Handhabung bzw. Ein-/Ausgabe großer Datenmengen statt der Ausführung umfangreicher Berechnungen

Arbeitsgruppe vom amerikanischen Verteidigungs- ministerium eingesetzt, um einen Standard zu entwickeln

Verschmelzung von FLOW-MATIC, COMTRAN und FACT

1960: COBOL-60 von CODASYL verabschiedet

Page 4: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

HISTORISCHES [2/5]

Grace Hopper:

„Grandma COBOL“

Eckdaten:

1930: Studium der Mathematik und Physik an Yale University 1934: an Yale promoviert 1944: in den Dienst der US-Navy arbeitete dort mit Mark I und leitete Aufbau von Mark II bis 1949: Forscherin an Harvard University 1966: Ruhestand (Reserve) 1967: von US-Navy in aktiven Dienst versetzt um Abhilfe bei

verschiedensten Computerproblemen zu schaffen

Page 5: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

HISTORISCHES [3/5]

Grace Hopper:

weitere Eckdaten:

1986: in den Rang eines Konteradmirals erhoben im Alter von 80 Jahren in den Ruhestand entlassen noch bis 1991 als Beraterin tätig

maßgeblich an Mark I, Mark II und UNIVAC I beteiligt

1952 den ersten Compiler entwickelt (A-0)

auf sie geht der Begriff debugging zurück

Page 6: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

HISTORISCHES [4/5]

First Computer Bug:

Page 7: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

HISTORISCHES [5/5]

Grace Hopper:

wurde für ihre Leistungen mit über 90 Auszeichnungen geehrt

u.a. mit mehr als 40 Ehrendoktorwürden

1969: Man of the Year Award der Datenverarbeitungsindustrie

1991: als erste Frau die National Medal of Technology

1996: Kriegsschiff USS Hopper vom Stapel gelassen

ihr zu Ehren wird der Grace Murray Hopper Award verliehen

Page 8: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

ENTWICKLUNG / STANDARDIS. [1/4]

Entwicklung durch CODASYL

COBOL-60 zeigte Potential und Nutzen der angestrebten gemeinsamen Programmiersprache

COBOL-61 war nur teilweise kompatibel mit Vorgänger

daraufhin: evolutionäre Weiterentwicklung(statt revolutionären Änderungen)

COBOL-61 Extended:

SORT REPORT WRITER

(Zeilen, Seiten oder div. Layouts zur Laufzeit ausgeben)

Page 9: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

ENTWICKLUNG / STANDARDIS. [2/4]

Entwicklung durch CODASYL [Ergänzung]

COBOL - EDITION 1965:

interne Tabellen Dateiverarbeitung

Erweiterungen durch X/Open

Während der Bemühungen bzgl. eines Standards für UNIX wurden hierbei auch Spezifikationen für COBOL vereinbart

Grundlage hierfür war COBOL-85

ohne Report Writer, Segmentierung, debugging mit Sperren auf Dateien, Interaktion über DISPLAY/ACCEPT

Page 10: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

ENTWICKLUNG / STANDARDIS. [3/4]

Standardisierung durch ANSI

1960: „Committee on Computers and Information Processing”mit Namen X3 geschaffen

weiterhin wurde ein Unterausschuß X3.4 für Programmier- sprachen eingerichtet

dieser richtete wiederum einen Unterausschuß X3.4.4 ein,der sich mit COBOL befassen sollte

23.10.1968: erster Standard „USA Standard COBOL 1968“(veröffentlicht als Dokument X3.23-1968)

nachfolgend wurde der Ausschuß X3.4.4 zum heute noch vorhandenen Technischen Komitee X3J4 gebildet

Page 11: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

ENTWICKLUNG / STANDARDIS. [4/4]

Standardisierung durch ANSI [Ergänzung]

Mai 1974: „American National Standard COBOL 1974“

April 1985: „COBOL-85“ von dem inzwischen ANSI heißendenEntscheidungsgremium als ANS X3.23-1985 veröffentlicht

erstmals beliebig geschachtelte Entscheidungs- (IF/EVALUATE) und Wiederholungsanweisungen (PERFORM) möglich

somit Einführung der strukturierten Programmierung

aktueller Standard von 2002

internationale Zeichensätze, einschließlich UNICODE objektorientierte Programmierung, bedingte Compilierung, u.a.

nächster Standard wird für 2008 vorbereitet

Page 12: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [1/20]

Aufbau eines COBOL-Programms

Programmzeile entspricht Format einer Lochkarte

Buchstaben sind festgelegte Positionen die ersten 6 und letzten 8 Positionen wurden auf Lochkarten

für interne Informationen genutzt (z.B. fortlaufende Nummern)

Struktur

1 2 3 4 5 6 7 8 9 10 11 12 13 14 … 80

C A B

DIVISION SECTION

Paragraph Satz Anweisung

Page 13: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [2/20]

die DIVISIONs

4 Pflichtbestandteile eines jeden Programms

IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROCEDURE DIVISION

IDENTIFICATION DIVISION

dient der Programm-Erkennung enthält Schlüsselwort „PROGRAM-ID“

IDENTIFICATION DIVISION.PROGRAM-ID. MEINPROGGI.

Page 14: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [3/20]

die DIVISIONs [Ergänzung]

ENVIRONMENT DIVISION

Informationen über die „Umwelt“ des Programms enthält zwei SECTIONS:

CONFIGURATION SECTIONbeschreibt den Computer selbst

INPUT-OUTPUT SECTIONstellt Verbindung zur „Außenwelt“ dar

CONFIGURATION SECTION.SOURCE-COMPUTER. WINDOWS.OBJECT-COMPUTER. WINDOWS.

Page 15: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [4/20]

die DIVISIONs [Ergänzung]

DATA DIVISION

Informationen zu Daten und Variablen enthält die WORKING-STORAGE SECTION

PROCEDURE DIVISION

enthält das eigentliche Programm abgeschlossene Arbeitsanweisung mittels Punktierung DIALOG SECTION für Interaktion mit Nutzer

DATA DIVISION.WORKING-STORAGE SECTION.01 MEINEVARI PIC X(25).

Page 16: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [5/20]

Variablen in COBOL

müssen außnahmslos vor Beginn der eigentlichenBefehlszeilen bekannt gemacht werden

in der WORKING-STORAGE SECTION definiert dient der Reservierung des nötigen Speichers dürfen nicht gleichen Namen wie Befehlsworte haben max. Länge beträgt 30 Zeichen dürfen keine Leerzeichen enthalten Bindestrich nicht am Anfang oder am Ende müssen mindestens einen Buchstaben enthalten

Art und Länge einer Variable müssen festgelegt werden (PIC)

Page 17: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [6/20]

Variablen in COBOL [Ergänzung 1]

PICTURE IS (kurz: PIC)

Datenhaltung: A … alphanumerische Zeichen X … alphanumerische Zeichen / nummerische

Werte

Rechnen: 9 … numerische Werte V … gedachter Dezimalpunkt für Nachkommastellen

Ausgabe: S … Zulassen von negativen Werten Z … unterdrückt führende Nullen . … Dezimalpunkt

Page 18: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [7/20]

Variablen in COBOL [Ergänzung 2]

Bsp. 1:

3-stellige Zahl (MEINEZAHL) 5-stelliger String (MEINSATZ)

Bsp. 2:

„nr 51“ kann gespeichert werden

WORKING-STORAGE SECTION.01 MEINEZAHL PIC 999.01 MEINSATZ PIC AAAAA.

WORKING-STORAGE SECTION.01 MEINSATZ PIC XXXXX.

Page 19: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [8/20]

Variablen in COBOL [Ergänzung 3]

Bsp. 3:

999 ist äquivalent zu 9(3) A(80) wäre ein String, für den 80 Byte reserviert werden

Bsp. 4:

Verschieben von DMARK in DMOUT mittels MOVE

WORKING-STORAGE SECTION.01 MEINEZAHL PIC 9(3).01 MEINSATZ PIC A(5).

01 DMARK PIC 99999V99.01 DMOUT PIC 99999.99.

Page 20: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [9/20]

einfache Befehle

ACCEPT <Variable>

Eingabeaufforderung an Nutzer es gilt: LängeEINGABEWERT ≤ LängeSPEICHERPLATZ

DISPLAY <Variable>

Ausgabe auf Bildschirm „DISPLAY SPACES.“ druckt eine Zeile Leerzeichen

VALUE IS <Konstante>

01 DMARK PIC 999 VALUE IS 325.01 NUMMER PIC 999 VALUE IS ZEROES.

Page 21: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [10/20]

einfache Befehle [Ergänzung 1]

MOVE <Quelle> TO <Ziel>

WORKING-STORAGE SECTION.01 DM PIC 999V99.01 DMOUT PIC ZZ9.99.PROCEDURE DIVISION.ANFANG. DISPLAY “ZAHL EINGEBEN“. ACCEPT DM. DISPLAY DM. MOVE DM TO DMOUT. DISPLAY SPACES. DISPLAY DMOUT.ENDE. STOP RUN.

ZAHL EINGEBEN15.2201522

15.22

Page 22: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [11/20]

einfache Befehle [Ergänzung 2]

MOVE ALL <Var/Konst> TO <Variable>

füllt <Variable> mit <Var> oder <Konst>

erzeugt einen String der 40x das Zeichen „=“ enthält

GO TO <Paragraph>

unbedingter Sprung innerhalb eines Programms kann zur Endlosschleife führen

01 ZEILE PIC A(40).PROCEDURE DIVISION. MOVE ALL “=“ TO ZEILE.

Page 23: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [12/20]

einfache Befehle [Ergänzung 3]

ADD <Zahl1[ Zahl2 Zahl3 … ZahlN]> TO <Zahl>

SUBSTRACT <Zahl1> FROM <Zahl2>

Umgang mit negativen Zahlen:

PIC bei Ausgabevariablen: —ZZ9 … zeigt nur Minus, falls es autaucht +ZZ9 … zeigt das jeweils vorhandene Vorzeichen

PIC bei Rechenvariablen: S999 … vorzeichenbehaftete Variable

Page 24: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [13/20]

einfache Befehle [Ergänzung 4]

MULTIPLY <Zahl1> BY <Zahl2>

DIVIDE <Zahl1> INTO <Zahl2>

COMPUTE <Ergebnis> = <…Formel…>

COBOL nicht für mathem. Probleme konzipiert <…Formel…> muss nun { + — * / } enthalten

ROUNDED

ADD ZAHL1 TO ZAHL2 ROUNDED.COMPUTE ERGEBNIS ROUNDED = ZAHL1 + ZAHL2.

Page 25: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [14/20]

einfache Befehle [Ergänzung 5]

GIVING

Ergebnis halten vergleichbar mit MOVE TO

ON SIZE ERROR <Anweisung>

ruft eine <Anweisung> bei Variablenüberlauf

SUBSTRACT ZAHL1 FROM ZAHL2 GIVING ZAHL3.

ADD 1 TO ZAHL ON SIZE ERROR GO TO ANFANG.

Page 26: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [15/20]

spezielle Befehle

PERFORM

Aufruf eines Unterprogramms

PERFORM <Paragraph> arbeite alle Anweisungen ab <Paragraph>

PERFORM <Para1> THRU <Para2> arbeite alle Anweisungen von <Para1> bis <Para2> ab

PERFORM <Section> arbeite alle Anweisungen innerhalb <Section> ab

PERFORM <Para./Sec.> <Anzahl> TIMES

Page 27: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [16/20]

spezielle Befehle [Ergänzung 1]

PERFORM UNTIL

Abarbeiten von endgeprüften Schleifen

Vergleichsoperatoren:

(NOT) = (NOT) > (NOT) <

mehrfach Bedingungen durch AND bzw. OR

PERFORM <UP> UNTIL <Bedingung(en)>.

Page 28: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [17/20]

spezielle Befehle [Ergänzung 2]

PERFORM VARYING

Abarbeiten von FOR - Schleifen

<Variable> wird auf <Startwert> gesetzt undsolange um <Inc> erhöht bis <Bedingung> erfüllt ist

Unterprogramme sind auch verschachtelbar (AFTER)

PERFORM <UP> VARYING <Variable> FROM <Startwert> BY <Inc> UNTIL <Bedingung>.

PERFORM AUSSEN VARYING COUNT FROM 1 BY 1 UNTIL AUSSEN = 4 AFTER INNEN FROM 1 BY 1 UNTIL INNEN = 2.

Page 29: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [18/20]

spezielle Befehle [Ergänzung 3]

IF ELSE

IF <Bedingung(en)> <Anweisung>.

IF <Bedingung(en)> <Anweisung1>

<Anweisung2>…<AnweisungN>.

IF <Bedingung(en)> <Anweisung(en)> ELSE <Anweisung(en)>.

Page 30: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [19/20]

Besonderheiten

SPECIAL–NAMES

Ersetzung reservierter Wörter mit eigenen oderanderen reservierten Wörtern

Ersetzung von $ durch DM Ersetzung von . durch ,

CONFIGURATION SECTION.SOURCE-COMPUTER.

WINDOWS.OBJECT-COMPUTER.

WINDOWS.SPECIAL-NAMES. CURRENCY SIGN IS “DM“.SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

Page 31: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

SYNTAX (C-80) [20/20]

Besonderheiten [Ergänzung]

COPY <Dateiname>

zusätzlicher Quelltext aus einer externen Datei wird vom Compiler geladen und mit übersetzt

CALL “<Name>“

aufrufen eines externen Programms aufgerufenes Programm muss eine LINKAGE SECTION

enthalten, in der alle Datenbereiche der Übergabe undRückgabe definiert sind

Page 32: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

COBOL heute [1/3]

eine der am weitesten verbreitete Programmiersprache (besonders für kommerzielle Zwecke)

Haupteinsatzgebiet: betriebliche Datenverarbeitung

an Stapelverarbeitung orientiert Schwerpunkt im Verarbeitungsteil von Programmen

(bzgl. Aufteilung in GUI, Datenhaltung, Verarbeitung)

spezifische und unabhängige GUI-Lösungen möglich

Browser-Schnittstellen mit JAVA Visual Basic unter Windows

Page 33: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

COBOL heute [2/3]

hilfreich bei Erstellung von Online-Systemen (CICS, IMS)

Transaktionsmonitore mit COBOL-tauglicher API IMS: reines CALL-Interface CICS: als EXEC-Sprache

(Umsetzung in COBOL-Code durch Präprozessor)

spezifische und unabhängige GUI-Lösungen möglich

Browser-Schnittstellen mit JAVA Visual Basic unter Windows

embedded SQL, stored Procedures

Page 34: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

COBOL heute [3/3]

nested program(Prozeduren mit lokalen Variablen)

instrinsic functions(u.a. mathematische Funktionen)

Rekursion bei externen Calls

Objektorientierte Programmierung

integrierter XML-Parser (XML PARSE)

COBOL .Net (Integration in ASP)

Page 35: CO mmon B usiness O riented L anguage. GLIEDERUNG Historisches Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80)

QUELLEN

WIKIPEDIA

http://de.wikipedia.org/wiki/COBOL und weiterführende LINKs

Buch: „COBOL-80“

VORTRAG

Christian Theil, 02IN gehalten am: 12.01.2006 Oberseminar: Geschichte der Informatik (WS2005/06)