Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

COmmonBusinessOrientedLanguage

Ähnliche Präsentationen


Präsentation zum Thema: "COmmonBusinessOrientedLanguage"—  Präsentation transkript:

1 COmmonBusinessOrientedLanguage

2 GLIEDERUNG Historisches Entwicklung / Standardisierung Syntax (C-80)
Allgemein Grace Hopper Entwicklung / Standardisierung CODASYL X/Open ANSI Syntax (C-80) Allgemeines Besonderheiten COBOL heute

3 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

4 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

5 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

6 HISTORISCHES [4/5] First Computer Bug:

7 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

8 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)

9 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

10 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 : erster Standard „USA Standard COBOL 1968“ (veröffentlicht als Dokument X ) nachfolgend wurde der Ausschuß X3.4.4 zum heute noch vorhandenen Technischen Komitee X3J4 gebildet

11 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ßenden Entscheidungsgremium als ANS X 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

12 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

13 SYNTAX (C-80) [2/20] die DIVISIONs
4 Pflichtbestandteile eines jeden Programms IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROCEDURE DIVISION dient der Programm-Erkennung enthält Schlüsselwort „PROGRAM-ID“ IDENTIFICATION DIVISION. PROGRAM-ID. MEINPROGGI.

14 SYNTAX (C-80) [3/20] die DIVISIONs [Ergänzung] ENVIRONMENT DIVISION
Informationen über die „Umwelt“ des Programms enthält zwei SECTIONS: CONFIGURATION SECTION beschreibt den Computer selbst INPUT-OUTPUT SECTION stellt Verbindung zur „Außenwelt“ dar CONFIGURATION SECTION. SOURCE-COMPUTER. WINDOWS. OBJECT-COMPUTER. WINDOWS.

15 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. MEINEVARI PIC X(25).

16 SYNTAX (C-80) [5/20] Variablen in COBOL
müssen außnahmslos vor Beginn der eigentlichen Befehlszeilen 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)

17 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

18 SYNTAX (C-80) [7/20] Variablen in COBOL [Ergänzung 2] Bsp. 1: Bsp. 2:
3-stellige Zahl (MEINEZAHL) 5-stelliger String (MEINSATZ) Bsp. 2: „nr 51“ kann gespeichert werden WORKING-STORAGE SECTION. MEINEZAHL PIC 999. MEINSATZ PIC AAAAA. WORKING-STORAGE SECTION. MEINSATZ PIC XXXXX.

19 SYNTAX (C-80) [8/20] Variablen in COBOL [Ergänzung 3] Bsp. 3: Bsp. 4:
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. MEINEZAHL PIC 9(3). MEINSATZ PIC A(5). DMARK PIC 99999V99. DMOUT PIC

20 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> DMARK PIC VALUE IS 325. NUMMER PIC VALUE IS ZEROES.

21 SYNTAX (C-80) [10/20] einfache Befehle [Ergänzung 1]
MOVE <Quelle> TO <Ziel> WORKING-STORAGE SECTION. DM PIC 999V99. 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 EINGEBEN 15.22 01522

22 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 ZEILE PIC A(40). PROCEDURE DIVISION. MOVE ALL “=“ TO ZEILE.

23 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

24 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.

25 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.

26 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

27 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)>.

28 SYNTAX (C-80) [17/20] spezielle Befehle [Ergänzung 2] PERFORM VARYING
Abarbeiten von FOR - Schleifen <Variable> wird auf <Startwert> gesetzt und solange 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.

29 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)>.

30 SYNTAX (C-80) [19/20] Besonderheiten SPECIAL–NAMES
Ersetzung reservierter Wörter mit eigenen oder anderen reservierten Wörtern  Ersetzung von $ durch DM  Ersetzung von . durch , CONFIGURATION SECTION. SOURCE-COMPUTER. WINDOWS. OBJECT-COMPUTER. SPECIAL-NAMES. CURRENCY SIGN IS “DM“. SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

31 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 und Rückgabe definiert sind

32 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

33 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

34 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)

35 QUELLEN VORTRAG WIKIPEDIA Buch: „COBOL-80“ Christian Theil, 02IN
und weiterführende LINKs Buch: „COBOL-80“ VORTRAG Christian Theil, 02IN gehalten am: Oberseminar: Geschichte der Informatik (WS2005/06)


Herunterladen ppt "COmmonBusinessOrientedLanguage"

Ähnliche Präsentationen


Google-Anzeigen