COmmonBusinessOrientedLanguage

Slides:



Advertisements
Ähnliche Präsentationen
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Advertisements

10. Grundlagen imperativer Programmiersprachen
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Grace Hopper und der erste Compiler
Gliederung des Inhalts
Entwicklung der Programmiersprachen
DOM (Document Object Model)
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Robotik mit LEGO Mindstorms
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Einführung XML XML Einführung Andreas Leicht.
GESCHICHTE DER INFORMATIK
Imperative Programmierung
Modularisierungstechniken
Zusammenfassung Vorwoche
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Batch-Programmierung Grundlagen
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung und Überblick
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Einführung in die Programmiersprache C 1
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Delphi II - OOP IFB Fortbildung
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Programmiersprache C 4
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Konzept einer Programmiersprache!
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
PHP Basic.
Grundkonzepte des Programmierens (mit ActionScript)
Programmierung 1. Einführung Seite 1
Grundlegende Funktionsweise eines Computers
Grundlagen der Informatik
Unterprogramme in JAVA
Objectives Verstehen was unterDelegate verstanden wird
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
MODULA-2.
Datentypen: integer, char, string, boolean
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
3. Lineare Befehle 3.1 Die Ausgabefunktion
BMEVIEEA100 Grundlagen der Programmierung
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
Programmieren mit BASIC
Johann Baron von Neumann
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
COBOL Präsentation im Rahmen des Seminars „Programmiersprachen“
(Syntax, Strings/Zahlen, Variablen, Arrays)
Delphi Chars und Strings
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The Programming Language Pascal
Arbeiten mit dem Terminal
Datentypen: integer, char, string, boolean
Datentypen: integer, char, string, boolean
 Präsentation transkript:

COmmonBusinessOrientedLanguage

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

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

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

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

HISTORISCHES [4/5] First Computer Bug:

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

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)

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

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

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

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

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.

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.

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

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)

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

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. 01 MEINEZAHL PIC 999. 01 MEINSATZ PIC AAAAA. WORKING-STORAGE SECTION. 01 MEINSATZ PIC XXXXX.

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. 01 MEINEZAHL PIC 9(3). 01 MEINSATZ PIC A(5). 01 DMARK PIC 99999V99. 01 DMOUT PIC 99999.99.

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.

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 EINGEBEN 15.22 01522

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.

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

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.

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.

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

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

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.

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

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.

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

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

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

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)

QUELLEN VORTRAG WIKIPEDIA Buch: „COBOL-80“ Christian Theil, 02IN 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)