1 / 31

COBOL

COBOL. Präsentation im Rahmen des Seminars „Programmiersprachen“ am 2. Juni 2004 Stephan Dümmer. Gliederung. Einführung COBOL Grundlagen Ausgewählte Aspekte der COBOL Programmierung Quicksort in COBOL Zusammenfassung. Einführung. COBOL: CO mmon B usiness O riented L anguage

Download Presentation

COBOL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“ am 2. Juni 2004 Stephan Dümmer

  2. Gliederung • Einführung • COBOL Grundlagen • Ausgewählte Aspekte der COBOL Programmierung • Quicksort in COBOL • Zusammenfassung

  3. Einfü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

  4. Gliederung • Einführung • COBOL Grundlagen • Ausgewählte Aspekte der COBOL Programmierung • Quicksort in COBOL • Zusammenfassung

  5. COBOL 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“

  6. COBOL Grundlagen SECTION PARAGRAPH SENTENCE : : : : : : • 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

  7. COBOL Grundlagen Zeilennummerierung Divisions Sentences Paragraphs

  8. COBOL Grundlagen • Programme bestehen aus Zeilen mit jeweils 80 Spalten(Fixed reference format) Indikatorbereich

  9. Gliederung • Einführung • COBOL Grundlagen • Ausgewählte Aspekte der COBOL Programmierung 3.1 Datentypen 3.2 Tabellenverarbeitung 3.3 Modularisierung • Quicksort in COBOL • Zusammenfassung

  10. Datentypen äquivalent: 01 MATRIKELNUMMER PIC 9(6). 01 VORNAME PIC X(10). • 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 DIVISION Numerisch 01 MATRIKELNUMMER PIC 999999. 01 VORNAME PIC XXXXXXXXXX. Alphanumerisch

  11. Datentypen • 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.

  12. Datentypen • Externe Darstellung (Druckaufbereitung) • Für Ausgabe auf Bildschirm, Drucker etc. • Festlegung des Ausgabeformates durch Angabe von Maskenzeichen in der Deklaration (+,-,Z,...)

  13. Datentypen Datenelemente Datengruppen • 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).

  14. Tabellenverarbeitung • 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.

  15. Tabellenverarbeitung • 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 1 2 3 4 5 1 2 3 Klausur

  16. Tabellenverarbeitung • 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 LAENGEvor Zugriff auf Tabelle 01 STUDENT-TABELLE. 05 NAME PIC X(20) OCCURS 1 TO 50 DEPENDING ON LAENGE.

  17. Modularisierung 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. • Zerlegen eines Programms in überschaubare Teile • Unterstützt Programmierung im Großen • Erleichtert Fehlersuche • Wiederverwendbarkeit der Module

  18. Modularisierung • 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.

  19. Gliederung • Einführung • COBOL Grundlagen • Ausgewählte Aspekte der COBOL Programmierung • Quicksort in COBOL • Zusammenfassung

  20. Quicksort 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

  21. Quicksort in COBOL Links (L1) Rechts (R1) 1 L1 / R1 Stack-Pointer Stack-Pointer 27 1 0 Stack

  22. Quicksort in COBOL Links (L2) Links (L3) Stack-Pointer 27 1 Rechts (R2) Rechts (R3) 2 L3 / R3 1 L2 / R2 0 Stack

  23. Quicksort in COBOL L5 Links (L2) L4 Stack-Pointer 27 1 Rechts (R2) R4 R5 3 L5 / R5 2 L4 / R4 1 L2 / R2 0 Stack

  24. Quicksort in COBOL L7 L6 Links (L2) L4 Stack-Pointer 27 1 Rechts (R2) R4 R6 R7 4 L7 / R7 3 L6 / R6 2 L4 / R4 1 L2 / R2 0 Stack

  25. Quicksort in COBOL Links (L2) Stack-Pointer 27 1 Rechts (R2) 1 L2 / R2 0 Stack

  26. Quicksort in COBOL

  27. Quicksort in COBOL Quicksort-Laufzeit: COBOL vs. Java

  28. Gliederung • Einführung • COBOL Grundlagen • Ausgewählte Aspekte der COBOL Programmierung • Quicksort in COBOL • Zusammenfassung

  29. Zusammenfassung • 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

  30. Vielen Dank für die Aufmerksamkeit!

  31. Tabellenverarbeitung • 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 XYZauf 1 SET XYZ DOWNBY 3.  Erniedrigt XYZum 3 SET XYZ UPBY 5.  Erhöht XYZum 5

More Related