WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL...

31
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms- Universität Münster WIRTSCHAFTS INFORMATIK COBOL COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“ am 2. Juni 2004 Stephan Dümmer

Transcript of WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL...

Page 1: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

WIR

TSC

HA

FTS

INFO

RM

ATI

KWestfälischeWilhelms-Universität Münster

WIRTSCHAFTSINFORMATIK

COBOLCOBOL

Präsentation im Rahmen des Seminars„Programmiersprachen“

am 2. Juni 2004

Stephan Dümmer

Page 2: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

2

WIRTSCHAFTSINFORMATIK

GliederungGliederung

1. Einführung

2. COBOL Grundlagen

3. Ausgewählte Aspekte der COBOL Programmierung

4. Quicksort in COBOL

5. Zusammenfassung

Page 3: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

3

WIRTSCHAFTSINFORMATIK

EinführungEinführung

COBOL: COmmon Business Oriented Language

Haupteinsatzzweck: kaufmännischer Geschäftsbereich(z. B. Buchführung in Banken und Versicherungen)

Verarbeitung großer und strukturierter Datenmengen (Batch-)Betrieb auf Großrechnern (Mainframe)

Eine der ältesten prozeduralen Programmiersprachen

Auf Grund der Erweiterungs- und Anpassungsfähigkeitauch heute noch weit verbreitet

Page 4: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

4

WIRTSCHAFTSINFORMATIK

GliederungGliederung

1. Einführung

2. COBOL Grundlagen

3. Ausgewählte Aspekte der COBOL Programmierung

4. Quicksort in COBOL

5. Zusammenfassung

Page 5: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

5

WIRTSCHAFTSINFORMATIK

COBOL GrundlagenCOBOL Grundlagen

1959 entwickelt und 1960 veröffentlicht von der Conference on Data Systems Languages (CODASYL)

Standardisierung der Sprache durch ISO, ANSI Gewährleistung der Kompatibilität und Portabilität COBOL-68, COBOL-74, COBOL-85, COBOL-2002

Großer Sprachumfang mit Anlehnung an natürliche Sprache (+) Quelltext ist gut lesbar und schnell zu erlernen (+) Gute Lesbarkeit erleichtert Pflege von Programmen (-) Wortreicher Sprachumfang macht Quelltext „geschwätzig“

Page 6: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

6

WIRTSCHAFTSINFORMATIK

COBOL GrundlagenCOBOL Grundlagen

Formale Struktur: Jedes Programm hat 4 Divisions­ IDENTIFICATION DIVISION

Programmbeschreibung: Name, Autor, Kompilierdatum etc. Mindestens Programmname erforderlich

­ ENVIRONMENT DIVISION Angaben über verwendete Hardware, externe Ressourcen

(z. B. Quell- und Zielrechner, Drucker, Dateien) Alle Angaben optional

­ DATA DIVISION Deklaration von Struktur und Typ der Datei-Datensätze Variablendeklaration

­ PROCEDURE DIVISION Anwendungslogik Anweisungen

DIVISION

SECTION

::

PARAGRAPH

::

SENTENCE::

Page 7: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

7

WIRTSCHAFTSINFORMATIK

COBOL GrundlagenCOBOL Grundlagen

Zeilennummerierung Divisions

Paragraphs

Sentences

Page 8: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

8

WIRTSCHAFTSINFORMATIK

COBOL GrundlagenCOBOL Grundlagen

Programme bestehen aus Zeilen mit jeweils 80 Spalten(Fixed reference format)

1 ... 6 7 8 ... 11 12 ... 72 73 ... 80

Nummerierung Bereich A Bereich B

Indikatorbereich

Page 9: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

9

WIRTSCHAFTSINFORMATIK

GliederungGliederung

1. Einführung

2. COBOL Grundlagen

3. Ausgewählte Aspekte der COBOL Programmierung3.1 Datentypen3.2 Tabellenverarbeitung3.3 Modularisierung

4. Quicksort in COBOL

5. Zusammenfassung

Page 10: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

10

WIRTSCHAFTSINFORMATIK

DatentypenDatentypen

Schwaches Typisierungskonzept (keine vorgegebenen Datentypen wie Integer, Double, Float etc.)

Datentypen Numerisch: Ziffern 0...9, Vorzeichen, Dezimalpunkt Alphanumerisch: Groß-/Kleinbuchstaben, Sonderzeichen

Variablendeklaration in der DATA DIVISION01 MATRIKELNUMMER PIC 999999.01 VORNAME PIC XXXXXXXXXX.

äquivalent:01 MATRIKELNUMMER PIC 9(6).01 VORNAME PIC X(10).

NumerischAlphanumerisch

Page 11: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

11

WIRTSCHAFTSINFORMATIK

DatentypenDatentypen

Numerischer Datentyp Mit Vorzeichen:

Mit Dezimalpunkt:

Mit Vorzeichenund Dezimalpunkt:

Interne Darstellung (für Berechnungen)

01 TEMPERATUR PIC S9(4).

01 GEWICHT PIC 9(4)V99.

01 KONTOSTAND PIC S9(4)V99.

Deklaration Beispielwert Interne Darstellung Belegter SpeicherPIC S9(4) -24 0024 4 Byte PIC 9(4)V99 25,35 002535 6 BytePIC S9(4)V99 -365,87 036587 6 Byte

Page 12: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

12

WIRTSCHAFTSINFORMATIK

DatentypenDatentypen

Externe Darstellung (Druckaufbereitung) Für Ausgabe auf Bildschirm, Drucker etc. Festlegung des Ausgabeformates durch Angabe von

Maskenzeichen in der Deklaration (+,-,Z,...)

Deklaration Beispielwert Externe Darstellung Belegter Speicher

PIC +9(4) -24 -0024 5 BytePIC 9(4).99 25,35 0025.35 7 BytePIC +9(4).99 -365,87 -0365.87 8 BytePIC +ZZ99.99 -65,87 -65.87 8 Byte

Page 13: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

13

WIRTSCHAFTSINFORMATIK

DatentypenDatentypen

Datensatz-Hierarchie durch Stufennummern Stufennummern 01 bis 49 stehen zur Verfügung Frei wählbare Schrittweite Gleiche Stufennummer für jede Hierarchieebene

01 STUDENTENDATEN. 05 NAME PIC X(20). 05 MATRIKELNUMMER PIC 9(6). 05 ANSCHRIFT. 10 STRASSE PIC X(20). 10 PLZ PIC 9(5). 10 WOHNORT PIC X(15).

DatenelementeDatengruppen

Page 14: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

14

WIRTSCHAFTSINFORMATIK

TabellenverarbeitungTabellenverarbeitung

Datentyp Array in COBOL nicht vorhanden

Tabellendefinition durch Wiederholung gleicher Datenfelder

Zugriff über Index DISPLAY NAME (20). 1. Datenfeld hat Index 1 (nicht 0!) Speicher für Datenfelder bei Kompilierung statisch alloziiert

01 STUDENT-TABELLE. 05 NAME PIC X(20) OCCURS 50 TIMES.

Page 15: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

15

WIRTSCHAFTSINFORMATIK

TabellenverarbeitungTabellenverarbeitung

Mehrdimensionale Tabellen

Zugriff über 2 Indizes: DISPLAY KLAUSUR (4,2). In COBOL-85 bis zu 7 Dimensionen möglich

01 STUDENT-NOTEN-TABELLE. 05 NAME OCCURS 5 TIMES. 10 KLAUSUR PIC 9 OCCURS 3 TIMES.

Name

Klausur

1 2 3 4 5

1

2

3

Page 16: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

16

WIRTSCHAFTSINFORMATIK

TabellenverarbeitungTabellenverarbeitung

Tabellen variabler Größe Speicher muss bei Kompilierung immer statisch alloziiert werden Flexibilität durch Vorgabe minimaler/maximaler Anzahl Elemente

(logische) Größe der Tabelle wird erst zur Laufzeit bestimmt Im Bsp. muss gelten: 1 ≤ LAENGE ≤ 50 Wertzuweisung an LAENGE vor Zugriff auf Tabelle

01 STUDENT-TABELLE. 05 NAME PIC X(20) OCCURS 1 TO 50 DEPENDING ON LAENGE.

Page 17: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

17

WIRTSCHAFTSINFORMATIK

ModularisierungModularisierung

Zerlegen eines Programms in überschaubare Teile Unterstützt Programmierung im Großen Erleichtert Fehlersuche Wiederverwendbarkeit der Module

Aufrufendes Programm

IDENTIFICATION DIVISION.PROGRAM-ID. HAUPTPROGRAMM. :PROCEDURE DIVISION. : CALL „UNTERPROGRAMM“. : : STOP RUN.

Aufgerufenes Programm

IDENTIFICATION DIVISION.PROGRAM-ID. UNTERPROGRAMM. :PROCEDURE DIVISION. : ANWEISUNG1. ANWEISUNG2. : EXIT PROGRAM.

Page 18: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

18

WIRTSCHAFTSINFORMATIK

ModularisierungModularisierung

Parameterübergabe an Unterprogramm

Aufrufendes Programm

IDENTIFICATION DIVISION.PROGRAM-ID. HAUPTPROGRAMM. :DATA DIVISION. 01 VORNAME PIC X(10). 01 MATNR PIC 9(6).PROCEDURE DIVISION. : CALL „UNTERPROGRAMM“ USING VORNAME, MATNR. : : STOP RUN.

Aufgerufenes Programm

IDENTIFICATION DIVISION.PROGRAM-ID. UNTERPROGRAMM. :DATA DIVISION.LINKAGE SECTION. 01 NAME PIC X(10). 01 MNUMMER PIC 9(6).PROCEDURE DIVISION USING NAME, MNUMMER. : ANWEISUNG1. ANWEISUNG2. : EXIT PROGRAM.

Page 19: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

19

WIRTSCHAFTSINFORMATIK

GliederungGliederung

1. Einführung

2. COBOL Grundlagen

3. Ausgewählte Aspekte der COBOL Programmierung

4. Quicksort in COBOL

5. Zusammenfassung

Page 20: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

20

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Quicksort basiert auf dem Prinzip der Rekursion Rekursion wird von COBOL nicht unterstützt Iterative Variante des Quicksort-Algorithmus erforderlich

Vorgehensweise Speicherung der zu sortierenden Zahlen in Tabelle Speicherung des zu sortierenden Tabellenbereiches für jeden

Quicksort-Aufruf Stack erforderlich Bearbeite Stack-Einträge bis Stack leer

Page 21: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

21

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Stack

1 27

Stack-Pointer0

Links (L1) Rechts (R1)

L1 / R11Stack-Pointer

Page 22: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

22

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Stack

1 27

0

Links (L2) Rechts (R2)

L2 / R21

Stack-Pointer

Links (L3) Rechts (R3)

2L3 / R3

Page 23: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

23

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Stack

1 27

0

Links (L2) Rechts (R2)

L2 / R21

Stack-Pointer

L4 R4

2L4 / R4

L5 R5

L5 / R53

Page 24: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

24

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Stack

1 27

0

Links (L2) Rechts (R2)

L2 / R21

Stack-Pointer

L4 R4

2L4 / R4

L6 R6

L6 / R63

L7 R7

L7 / R74

Page 25: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

25

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Stack

1 27

0

Links (L2) Rechts (R2)

L2 / R2Stack-Pointer

1

Page 26: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

26

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Page 27: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

27

WIRTSCHAFTSINFORMATIK

Quicksort in COBOLQuicksort in COBOL

Anzahl zusortierender Elemente

COBOL[in Sekunden]

Java[in Sekunden]

1.000 0,01 <0,01

2.500 0,02 <0,01

5.000 0,05 0,01

10.000 0,10 0,01

25.000 0,28 0,02

50.000 0,55 0,04

100.000 1,17 0,07

200.000 2,35 0,13

500.000 6,48 0,35

600.000 7,59 0,42

800.000 10,75 0,57

1.000.000 13,55 0,73

2.000.000 27,12 1,56

Quicksort-Laufzeit: COBOL vs. Java

Page 28: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

28

WIRTSCHAFTSINFORMATIK

GliederungGliederung

1. Einführung

2. COBOL Grundlagen

3. Ausgewählte Aspekte der COBOL Programmierung

4. Quicksort in COBOL

5. Zusammenfassung

Page 29: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

29

WIRTSCHAFTSINFORMATIK

ZusammenfassungZusammenfassung

Wortreicher Sprachumfang Quelltext gut lesbar

Schwache Typisierung hohe Fehleranfälligkeit

COBOL ist nach wie vor die dominierende Sprache bei kaufmännischen Mainframe-Anwendungen

Hohe Erweiterungs- und Anpassungsfähigkeit

Einsatz sowohl in Alt-Anwendungen als auch bei Neuentwicklungen

Page 30: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

30

WIRTSCHAFTSINFORMATIK

Vielen Dank für die Aufmerksamkeit!Vielen Dank für die Aufmerksamkeit!

Page 31: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“

31

WIRTSCHAFTSINFORMATIK

TabellenverarbeitungTabellenverarbeitung

Tabellendefinition mit Zugriff durch Spezialindex

Spezialindex XYZ beinhaltet relative Adresse eines Datenfeldes Zugriff auf Datenfeld DISPLAY NAME (XYZ). Index darf nicht durch arithmetische Operationen verändert werden

01 STUDENT-TABELLE. 05 NAME PIC X(20) OCCURS 50 TIMES INDEXED BY XYZ.

SET XYZ TO 1. Setzt XYZ auf 1SET XYZ DOWN BY 3. Erniedrigt XYZ um 3SET XYZ UP BY 5. Erhöht XYZ um 5