BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

48
BIT – Schaßan – WS 02/03 Basisinformationstechnol ogie HK-Medien Teil 1, 9.Sitzung WS 02/03

Transcript of BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

Page 1: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Basisinformationstechnologie

HK-Medien

Teil 1, 9.SitzungWS 02/03

Page 2: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Geschichte der Programmiersprachen

Seit der Entwicklung des ersten Computers wurden ca. Eintausend Programmiersprachen (PSS) entwickeltTurm von Babylon der Programmiersprachen Sammet, J.: Programming Languages: History and Fundamentals. Prentice Hall, 1969.

Page 3: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

PSS

Wie natürliche Sprachen haben PSS eine Grammatik mit

SyntaxSemantik

PSS verlangen allerdings genaueres Einhalten der Regeln, da sonst ein Ausdruck (und damit evtl. das ganze Programm) nicht verstanden wird.

Page 4: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Höhere PSS

Höhere PSS bieten abstraktere Sicht auf Daten und OperationenDaten nicht mehr als Register- oder Speicherzelleninhalte, sondern als mathematische Objektestatt Speicherzelle VariableOperationen werden durch Befehle ausgeführt, die das (abstrakte) Ergebnis durch gezielte Verknüpfungen und Speicherveränderungen erzielt befehlsorientierte, imperative PSS

Page 5: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Typen von PSS

imperative (befehls-, problemorientierte, prozedurale)

objektorientiertevs.

deklarative (logische)

meist keine strenge Trennung der Konzepte

funktionale (applikative)vs.

operationale Semantik

Page 6: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Imperative PSS

Zur Lösung eines Problems müssen die verfügbaren Operationen des Rechners durch geschickte Kombinationen verbunden werdenIn höheren PSS abstraktere Formulierungen und Loslösung von Eigenarten der Hardwarez.B. BASIC, Pascal, C, C++, Java

Page 7: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Deklarative PSS

Aus einer nach bestimmten Regeln gebilde-ten mathematischen Formulierung des Problems wird automatisch ein Programm erzeugt.Funktionsdefinition, -anwendung, -kompositionauf mathematischen Kalkülen basierend

Prädikatenlogik (logische Sprachen) PROLOGLambda-Kalkül (funktionale Sprachen) LISP

Page 8: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Prädikatenlogik

Aussagenlogik:Darstellung von Aussagen (Theoremen)Vollständigkeit, Widerspruchsfreiheit, Ableitbarkeit

Prädikatenlogik:zweiwertige Logik (t/f)Prädikat stellt Eigenschaften der Argumente oder deren Beziehungen untereinander dar

Page 9: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Prädikat

Ein Prädikat im logischen Sinn ist eine Aneinanderreihung von Wörtern einer natürlichen Sprache, die mindestens null Leerstellen enthält und die zu einem Aussagesatz der natürlichen Sprache wird, wenn in jede Leerstelle ein Eigenname eingesetzt wird.Die Zahl der Leerstellen, die ein Prädikat enthält, ist die Stelligkeit des Prädikats.

Sokrates ist ein Mensch keine Leerstelle, nullstellig

Page 10: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Lambda-Kalkül

Besteht aus Kalkülsprache (Alphabet, wohlge-formten Ausdrücken) und Deduktionsgerüst (Axiome, Ableitungsregeln)Funktionsabstraktionλ x . A Funktion x mit Funktionskörper AFunktionsapplikationF A Funktion F auf Ausdruck A angewandtkeine Zahlen, Funktionsnamen, Wahrheitswerte, etc.

Page 11: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Lambda-Kalkül (2)

abstrakte Syntax:<λ-Ausdruck> = <Variable>

Variablenname| <λ-Ausdruck> <λ-Ausdruck>

Applikation| <λ-Ausdruck> . <λ-Asudruck>

Abstraktion

Page 12: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Lambda-Kalkül (3)

Beispiele:Identität: λ x . xZweimalige Anwendung einer Funktion auf ein Argument:

(λ f . (λ x . f (f x))) u v

(λ x . u (u x)) v u (u v)

Page 13: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Konzepte deklarativer PSS

ein der Mathematik entlehntes Variablen-konzept Variable als Name für einen Wert keine Speicherveränderung keine Zuweisungen, keine Kontrollstrukturen (while, repeat etc.)Rekursionu.a.

Page 14: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

imperativ vs. deklarativ

deklarative meist interpretiert, imperative kompiliert imperative effizienterUmstieg auf deklarativ schwierigKI vorwiegend mit Hilfe deklarativer

Page 15: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Charles Babbage (1792-1871)

Charles Babbage (1792-1871) entwarf zwei Rechenmaschinen, die Difference Machine (1823) und die Analytical Engine (1834). Die Maschinen wurden niemals fertig gestellt.Die einzige arithmetische Operation, die ausgeführt werden sollte, war die Addition mit 27-stelligen Dezimalzahlen.

Page 16: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Konrad Zuse (1910-1995)

Konrad Zuse baute mit dem Rechner Z3 (1941) eine Programmgesteuerte Rechenmaschine, basierend auf dem binären Zahlensystem (Gleitkomma-Arithmetik), die wirklich funktionierte.Die erste Programmiersprache der Welt für Rechner (Computer) wurde von 1942-1945 von Konrad Zuse /ZUSE45/ entwickelt.Er nannte sie den Plankalkül.

Page 17: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Plankalkül

basiert auf dem Aussagen- und PrädikatenkalkülRechner, wie die Z3 und Z4, bezeichnete er als algebraische RechenmaschinenMit Hilfe des Plankalkül sollten kombinatorische Aufgaben beschrieben werden und dann in Programme für algebraische Rechengeräte umgesetzt werdenDer Plankalkül wurde nie implementiert, er diente aber als Diskussionsgrundlage für Programmier-sprachen, wie z.B. ALGOL58 / 60, EIFFEL.

Page 18: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Plankalkül (2)

Oberflächlich gesehen nahm der PK wesentliche Züge der späteren algorithmischen Sprachen, wie ALGOL vorweg.Entsprechungen für die gängigen Kontrollkon-strukte wie IF und REPEAT-UNTIL-Anweisungen.alle in höheren Programmiersprachen übliche skalare Datentypen wie boolean, integer, real , complexAllerdings z.B. kein "Verstecken" der Datentypen

Page 19: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Datentypen

Datentypen = Objektarten, mit denen in den Anwendungen gerechnet wird (z.B. logische Größen, Zahlen der verschiedensten Art, abstrakte Bezeichner, usw.), einschließlich der Operationen, die auf die einzelnen Objektarten angewandt werden könnenauf der Hardwareebene durch Bitketten repräsentiert

Page 20: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Datentypen (2)

Prinzip, dass der Programmierer nach Möglichkeit nur die Typen der Sprache sieht, nicht jedoch die sie repräsentierenden Bitketten (die nur der Maschine bekannt sein müssen)

Das Verbergen der Datenrepräsentation gibt dem Programmierer eine abstrakte, anwendungsbezogene Sicht der Datentypen und macht so die Programmierung einfacher und fehlerfreier

andererseits wird dem Programmierer die Möglichkeit genommen, eigene Typen definieren zu können

Page 21: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Datentypen (3)

Jeder Datentyp ist definiert durch die Menge der zulässigen Werte (Wertebereich) und die Menge der zulässigen Operationen.

Zwei Datentypen heißen strukturgleich, wenn sie denselben Wertebereich besitzen.

Page 22: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Datentypen (4)

Unterscheidung zwischenTypdefinitionBeschreibung eines Datentyps durch Angabe des Wertebereichs (und impliziter Festlegung der Operationen)

TypdeklarationBekanntgabe eines neuen Datentyps durch Angabe des neuen Typnamens und der zugehörigen Typdefinition.

Page 23: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Polymorphes Typsystem

Polymorph heißt ein Typsystem, wenn die Definitions- und Wertebereiche nicht starr durch atomare Typen oder Kombinationen aus atomaren Typen festgelegt sind, sondern durch die Verwendung von Typvariablen flexibel gehalten werden.Eine Funktion kann dann mit verschiedenen konkreten Typen arbeiten.

Page 24: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Datentypen: Beispiel Java

In Java gibt es folgende grundlegende Basis-Datentypen:

byte 8 Bit Zahlenwert (-128..127)short 16 Bit, int 32 Bit, long 64 Bit Zahlenwertfloat 32 Bit IEEE 754 Fließkommazahl, double 64 Bit char 16 Bit Unicode Zeichenboolean echter 1 Bit WertArraysString Unicode StringStringBuffer

Page 25: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

FORTRAN

Formula TranslatorJohn Backus1954-1962Zur Durchführung numerischer Berechnungen

Page 26: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

COBOL

Common Business Oriented Languageab 1959 auf Anregung des US Department of Defense entwickeltEine der englischen Sprache angenäherte PS für kaufmännische Aufgaben

Page 27: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

ALGOL 58/60

Algorithmic LanguageNaur, Bauer, Perlis, Hoare, SamuelsenEntwicklung in Wechselbeziehung mit der Fortentwicklung der funktionellen Fähigkeiten der Rechenanlagen

symbolische Adresse (Wilkes 1953)indirekte Adressierung (Schecher 1955)

unter dem Eindruck der Probleme der maschinellen Übersetzung von algorithmischen Sprachen in Maschinensprachen

Page 28: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

ALGOL-Nachfolger

Aus der Sprache ALGOL entstanden viele andere imperative Sprachen, wie

PASCALSIMULAALGOLW, ALGOL68PL/1Cund besonders ADA

Page 29: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

BASIC

Beginners All Purpose Symbolic Instruction Code1963/4 Kemeny, Kurtzvereinfachte Fassung von Fortranverfügt allerdings über kein adäquates Prozedurkonzept für mittlere bis große Aufgaben und keine problemorientierten DatenstrukturenAnders: VisualBASIC, besonders zur Programm-ierung graphischer Benutzerschnittstellen

Page 30: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

PL/1

Programming Language 1Mitte 60er JahreVersuch, universelle PS zu entwickelnunübersichtlich, schwer zu implementieren, aber maßgeschneidert für Anforderungen vieler Programmierer

Page 31: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Pascal

nach Blaise Pascal (1623-1662) benanntN. Wirth 1968-73als einfachere, systematische Alternative zu ALGOL68 und PL/1zum Einsatz im Informatikunterrichterstmals systematisches Typkonzeptstrukturierte PS (if-, while-Anweisungen)

Page 32: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Pascal-Nachfolger

darauf aufbauend:Modula-2 modulorientiert

OBERON(-2) objektorientiert

MesaEuklidELAN für dt. SchulunterrichtDelphi

Page 33: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Ada

Ada Augusta, der Gräfin von Lovelace von US- DoD in Auftrag gegeben, 1979 ein europäischer Entwurf als Basis akzeptiertenthält Konzepte wie

Modularisierung, separate CompilierungParallelverarbeitungAusnahmebehandlungpolymorphes Typsystem

Page 34: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

C / C++

Dennis Ritchie 1972 (Bell Laboratories)immer noch eine Reihe maschinennaher Sprachkonstrukte "höhere Maschinensprache"

UNIX ist in C geschrieben(C ist durch UNIX entstanden)

C++ ursprünglich als objektorientierter Zusatz implementiert Präprozessor übersetzte C++ nach C, dann nach Maschinensprache

Page 35: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

LISP

List ProcessorMcCarthy (1959)Funktionale Sprache (Lambda-Kalkül)als PS zur nichtnumerischen (symbolischen) DV konzipiert KIListen als Möglichkeit, verschiedenartige Objekte aufzubauen, zu zerlegen und zu bearbeiten

(DEF FAK (N) (COND ((ZeroP N) 1) (T (Times N (FAK (SUB 1 N))))))

Page 36: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

ML

Meta Languagekeine rein funktionale Sprache, einige imperative ElementeWegweisendes polymorphes Typsystem

Page 37: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

PROLOG

PROgrammation en LOGique Kowalski, 1971-74Logische Sprache (Prädikantenlogik)interaktive Verständigung zwischen dem Anwender und dem PROLOG-System, in dem der Anwender z.B. folgendes vornehmen kann:

1. Fakten für Objekte und Beziehungen deklarieren2. Regeln für Objekte und Beziehungen definieren

sowie3. über Objekte und Beziehungen Anfragen stellen.

Page 38: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

PROLOG-Beispiele

Valuable (Gold). /* Gold ist wertvoll.*/

Valuable (Money). /* Geld ist wertvoll.*/

Father (John, Mary). /* John ist der Vater von Mary.*/

Gives (John, Book, Mark). /* John gibt Mark das Buch.*/

King (John, France). /* John ist König von Frankreich.*/

I am. /* Ich bin.*/

Page 39: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

PROLOG-Beispiele (2)

Valuable (Gold)? /* Ist Gold wertvoll*/Yes

Father (x,Mary)?x=John

Valuable (x)?x=Goldx=Money

Page 40: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Smalltalk

Alan Kay, Anfang 70er Jahre entwickelt, Anfang 80er publizierterste konsequent objektorientierte PSmit graphischer Benutzeroberfläche (für Kinder geplant)

aber: Glaube an Effizienzverlust durch virtuelle Maschine zur Ausführung verhindert großen Erfolg

Page 41: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Java

1991, Sungrundsätzlich auf C aufbauend, jedoch rein objektorientiert, keine ProzedurenelementeVorteile:

Plattformunabhängigkeit aufgrund VMProgramme laufen "sicher" in einer Umgebung, ohne auf die Ressourcen des Computers zugreifen zu könnenRoutinen für graphische Oberflächen

Page 42: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Übersicht PSS

Page 43: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Sonstige Sprachen

ScriptsprachenPerl (Practical Extraction and Report Language )

PHPJavascript

DatenbanksprachenSQL (Standard Query Language)

MakrosprachenVBA (Visual Basic for Applications)

Sprachen für bestimmte AnwendungsfelderPublizieren (TeX, PostScript)

Page 44: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Weitere Konzepte

wesentliche Beiträge zu einem einheitlichen und vollständigen begrifflichen System der Program-mierung (zur Schaffung einer semantischen Basis)J.Green 1959 (Namenserzeugung)K.Samuelson 1959 (Blockstruktur)N.Wirth 1965 (Referenzkonzept und die Sprachen ALGOLW, PASCAL, usw.) C.Hoare 1966 (Verbund)

Page 45: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Software Engeneering

Softwarekrise Mitte der 60er durch neue Rechnergenerationen geschaffenen Möglichkeiten übertrafen bei weitem die bis dahin entwickelten ProgrammiertechnikenAbkehr von der Kunst des Programmierens und Hinwendung zu einer ingenieurmäßigen Software-EntwicklungSoftwareherstellung als zusammenhängen-der Prozess

Page 46: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Modularisierung

Grundlegende Ziele:Korrektheit, Robustheit, Erweiterbarkeit, Widerverwendbarkeit, Kompatibilität

Kriterien: modulare…Zerlegung (Reduktion der Komplexität)Zusammensetzung (Erstellung von Softwareelementen aus anderen, bestehenden Softwareelementen)VerstehbarkeitKontinuität (kleine Änderungen der Spezifikation sollte nur kleine Änderungen am Gesamtsystem nach sich ziehen)Schutz (Ausnahmefehler sind in Modulen zu behandeln)

Page 47: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Literatur

Geschichte der PSS:http://tunes.org/Review/Languages.htmlhttp://www.cs.iastate.edu/~leavens/teaching-prog-lang/home.htmlhttp://ivs.cs.uni-magdeburg.de/~dumke/PSK/

Kurzerläuterungen zu PSS und Links:http://users.erols.com/ziring/dopl.html

Page 48: BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 9.Sitzung WS 02/03.

BIT – Schaßan – WS 02/03

Für den Weihnachtsbaum

Rolf Hochhuth: Alan Turing. Erzählung. Rowohlt 1987.A.K. Dewdney: Eine Reise ins Innere der Mathematik. Birkhäuser 2000.