+ All Categories
Home > Documents > Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik...

Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik...

Date post: 05-Apr-2015
Category:
Upload: leonore-amacker
View: 105 times
Download: 2 times
Share this document with a friend
21
Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung „Informatik VI“ (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar 2001
Transcript
Page 1: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

Programmiersprachen

I F BPascal

PROLOG

CAMLC++

Ada

Java

LISP

Referat zur Veranstaltung „Informatik VI“ (18.635)

StD G. NollRhein-Gymnasium Sinzig

Februar 2001

Page 2: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

2 Sprache

Eine Sprache besteht aus der Gesamtheit aller Eine Sprache besteht aus der Gesamtheit aller möglichen Aussagen und deren Bedeutungenmöglichen Aussagen und deren Bedeutungen

SyntaxSyntax Regeln zum formalen Aufbau der SätzeRegeln zum formalen Aufbau der Sätze

SemantikSemantik Regeln über die Bedeutung der SätzeRegeln über die Bedeutung der Sätze

„„Dieser Satz hat vier Wörter.“Dieser Satz hat vier Wörter.“syntaktisch korrekt - semantisch falschsyntaktisch korrekt - semantisch falsch

x:=yx:=ysyntaktisch korrekte Zuweisung, abersyntaktisch korrekte Zuweisung, abersemantisch nur korrekt, wenn x und y vom gleichen semantisch nur korrekt, wenn x und y vom gleichen Datentyp sindDatentyp sind

Page 3: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

3 Programmiersprachen

Computerunterstützte Problemlösungen basieren auf Computerunterstützte Problemlösungen basieren auf AlgorithmenAlgorithmen

Algorithmen stellen den Zusammenhang zwischen Algorithmen stellen den Zusammenhang zwischen Ein- und Ausgabedaten dar und sindEin- und Ausgabedaten dar und sind eindeutigeindeutig undund ausführbarausführbar sowiesowie endlichendlich bezüglich bezüglich AusführungzeitAusführungzeit und und BeschreibungBeschreibung

Das Problem der Übertragung von Algorithmen auf Das Problem der Übertragung von Algorithmen auf Maschinen führte zur Entwicklung von Maschinen führte zur Entwicklung von

ProgrammiersprachenProgrammiersprachen

Page 4: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

4 Frühe Programmiersprachen

SchickardSchickard (1623), (1623), LeibnizLeibniz (1679) und (1679) und BabbageBabbage (1837) befassten sich bereits mit den Möglichkeiten (1837) befassten sich bereits mit den Möglichkeiten einer „Programmierung“einer „Programmierung“

TuringTuring (1936) beschrieb eine theoretische Maschine (1936) beschrieb eine theoretische Maschine mit zugehöriger Steuerungssprachemit zugehöriger Steuerungssprache

ZuseZuse (1938) entwickelte ein sog. (1938) entwickelte ein sog. PlankalkülPlankalkül mit mit wesentlichen Elementen moderner wesentlichen Elementen moderner ProgrammiersprachenProgrammiersprachen

Page 5: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

5 Maschinensprachen

Programmiersprachen 1. Generation (Programmiersprachen 1. Generation (1GL1GL))

alle Befehle direkt in der Sprache der CPUalle Befehle direkt in der Sprache der CPU

das Programm ist eine Folge aus 0 und 1 das Programm ist eine Folge aus 0 und 1

bei fester Wortlänge enthält ein Befehl einenbei fester Wortlänge enthält ein Befehl einen Operationsteil Operationsteil und einenund einen AdressteilAdressteil

bessere Lesbarkeit durch bessere Lesbarkeit durch HexadezimalsystemHexadezimalsystem

Page 6: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

6 Assemblersprachen

Programmiersprachen 2. Generation (Programmiersprachen 2. Generation (2GL2GL))

für Operationskodes werden kurze Abkürzungen, die für Operationskodes werden kurze Abkürzungen, die MnemoniksMnemoniks eingeführt eingeführt

LDALDA lade den Akkumulatorlade den Akkumulator

ADDADD AdditionAddition

ein ein AssemblerAssembler als Übersetzer wird notwendigals Übersetzer wird notwendig

weitere Flexibilität durch weitere Flexibilität durch symbolischesymbolische AdressenAdressen, die , die eine Verschiebung von Programmteilen im Speicher eine Verschiebung von Programmteilen im Speicher erleichternerleichtern

Page 7: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

7 Sprachen der 3. Generation

ein Mnemonik beschreibt mehr als einen ein Mnemonik beschreibt mehr als einen MaschinenbefehlMaschinenbefehl

Verwendung besser lesbarer SchlüsselwörterVerwendung besser lesbarer Schlüsselwörter

while not eof(f) do read(f,datensatz) end;while not eof(f) do read(f,datensatz) end;

typische Sprachentypische Sprachen FORFORmular mular TRANTRANslating system 1954slating system 1954 COCOmmonmmon BBusinessusiness OOrientedriented LLanguage 1959anguage 1959 BBeginners eginners AAll purposell purpose SSymbolicymbolic IInstructionnstruction CCode 1962ode 1962

Page 8: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

8 Softwarekrise

Mitte der 60er Jahre erkennt man die Notwendigkeit Mitte der 60er Jahre erkennt man die Notwendigkeit bei Software auf bei Software auf KorrektheitKorrektheit, , ZuverlässigkeitZuverlässigkeit, , BenutzerfreundlichkeitBenutzerfreundlichkeit, , WartungsfreundlichkeitWartungsfreundlichkeit, , EffizienzEffizienz und und PortabilitätPortabilität zu achten zu achten

Konsequenz: Entwicklung von Konsequenz: Entwicklung von blockorientiertenblockorientierten SprachenSprachen, die diese Qualitätskriterien unterstützen, die diese Qualitätskriterien unterstützen

Blöcke sind kleinere Programmeinheiten, die für Blöcke sind kleinere Programmeinheiten, die für sich alleine verifizierbar sindsich alleine verifizierbar sind

ALGOALGOrithmic rithmic LLanguage 1960 (Hoare, Wirth)anguage 1960 (Hoare, Wirth)

Page 9: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

9 Merkmale von ALGOL

BlockstrukturBlockstruktur strenge Deklarationspflichtstrenge Deklarationspflicht Gültigkeitsbereiche von VariablenGültigkeitsbereiche von Variablen zwei Arten der Parameterübergabezwei Arten der Parameterübergabe rekursive Prozedurenrekursive Prozeduren formatfreie Syntaxformatfreie Syntax Muttersprache der Muttersprache der ALGOL-FamilieALGOL-Familie

PascalPascal ModulaModula OberonOberon ALGOL68ALGOL68 AdaAda CC

Page 10: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

10 Modulkonzept

Sammlung von Datenstrukturen und Sammlung von Datenstrukturen und Zugriffsoperationen in Zugriffsoperationen in BausteinenBausteinen mit mit

DatenabstraktionDatenabstraktion und und Information-HidingInformation-Hiding

getrennten getrennten Definitions-Definitions- und und ImplementationsteilenImplementationsteilen

strenger strenger SchnittstellenüberwachungSchnittstellenüberwachung bereits zur bereits zur

ÜbersetzungszeitÜbersetzungszeit

der Möglichkeit der Möglichkeit parallele Prozesseparallele Prozesse zu programmierenzu programmieren

Das Modulkonzept unterstützt die Das Modulkonzept unterstützt die strukturiertestrukturierte ProgrammierungProgrammierung im im Software-EngineeringSoftware-Engineering

Page 11: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

11 Systemprogrammierung

Für die Programmierung von Betriebsystemen sind Für die Programmierung von Betriebsystemen sind Sprachen wie Pascal nicht besonders geeignet, da sie Sprachen wie Pascal nicht besonders geeignet, da sie hardwarenahe Zugriffe abschirmen (hardwarenahe Zugriffe abschirmen (virtuelle virtuelle MaschineMaschine))

Im Zusammenhang mit der Entwicklung von Im Zusammenhang mit der Entwicklung von UNIXUNIX entstand die Sprache entstand die Sprache CC , in der eine , in der eine assemblerähnliche Programmierung möglich ist, assemblerähnliche Programmierung möglich ist, ohne auf die Vorteile einer höheren ohne auf die Vorteile einer höheren Programmiersprache verzichten zu müssenProgrammiersprache verzichten zu müssen

Page 12: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

12 C

geringer Sprachumfanggeringer Sprachumfang

beliebig ineinander konvertierbare Datentypenbeliebig ineinander konvertierbare Datentypen

übliche Kontrollstrukturenübliche Kontrollstrukturen

Unterstützung von Unterstützung von NebeneffektenNebeneffekten für eine kompakte für eine kompakte Formulierung und effiziente Kodierung. Deshalb oft Formulierung und effiziente Kodierung. Deshalb oft unverständlich:unverständlich: while(*ziel++ = *quelle++) ;while(*ziel++ = *quelle++) ;

Zahlen aus Zahlen aus quellequelle ins ins zielziel schieben bis 0 auftritt schieben bis 0 auftritt

Page 13: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

13 Sprachen der 4. Generation

Schlüsselworte beschreiben komplexe VorgängeSchlüsselworte beschreiben komplexe Vorgänge readeachreadeach lese alle vorhandenen Datensätze lese alle vorhandenen Datensätze

oft Bestandteil einer Software-Produktions-oft Bestandteil einer Software-Produktions-Umgebung oder eines CASE-ToolsUmgebung oder eines CASE-Tools

vielfach herstellerabhängigvielfach herstellerabhängig

typische Sprachen typische Sprachen SQLSQL undund R/3R/3 (SAP)(SAP)

Page 14: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

14 Sprachen der KI

LISLISt t PProzessing language rozessing language bereits 1959 entwickelt, noch heute im Gebrauchbereits 1959 entwickelt, noch heute im Gebrauch Prototyp einer Prototyp einer funktionalen Sprachefunktionalen Sprache besonders geeignet zurbesonders geeignet zur SymbolverarbeitungSymbolverarbeitung das CAS-Systeme das CAS-Systeme DeriveDerive ist in einer auf LISP ist in einer auf LISP

basierenden Sprache (muLISP) geschriebenbasierenden Sprache (muLISP) geschrieben

LogoLogo um 1970 von um 1970 von PappertPappert aus LISP entwickelt aus LISP entwickelt enthält Kontrollsstrukturenenthält Kontrollsstrukturen Turtle-GraphikTurtle-Graphik

PROPROgramminggramming inin LOGLOGicic Edinburgh um 1970Edinburgh um 1970

Page 15: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

15 Sprachparadigmen

Den Programmiersprachen liegen bestimmte Den Programmiersprachen liegen bestimmte Konzepte oder Denkschemata zu Grunde, nach Konzepte oder Denkschemata zu Grunde, nach denen man sie in denen man sie in SprachparadigmenSprachparadigmen einordnet: einordnet:

imperativeimperative Sprachen Sprachen

funktionalefunktionale Sprachen Sprachen

prädikative prädikative SprachenSprachen

objektorientierteobjektorientierte Sprachen Sprachen

Page 16: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

16 Imperative Sprachen

Programme bestehen aus BefehlssequenzenProgramme bestehen aus Befehlssequenzen((imperareimperare = = befehlenbefehlen))

Der Programmentwurf orientiert sich an der Der Programmentwurf orientiert sich an der Arbeitsweise einer hypothetischen MaschineArbeitsweise einer hypothetischen Maschine

Das Variablenkonzept orientiert sich an Operationen Das Variablenkonzept orientiert sich an Operationen auf Speicherzellenauf Speicherzellen

typische Sprachentypische Sprachen FORTRANFORTRAN –– ALGOLALGOL –– BASIC BASIC –– Pascal Pascal –– CC –– AdaAda

Page 17: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

17 Funktionale Sprachen

Problemrelevante Abhängigkeiten zwischen einer Problemrelevante Abhängigkeiten zwischen einer gegebenen Ausgangssituation und einer gewünsch-gegebenen Ausgangssituation und einer gewünsch-ten Endsituation werden mit Hilfe von Funktionen ten Endsituation werden mit Hilfe von Funktionen erfassterfasst

Ein funktionales Programm besteht aus Funktions-Ein funktionales Programm besteht aus Funktions-definitionen und relevanten Funktionsaufrufendefinitionen und relevanten Funktionsaufrufen

typische Sprachentypische Sprachen LISPLISP – – LogoLogo – – APLAPL – – CAMLCAML

AG-Material: AG-Material: Funktionale ProgrammierungFunktionale Programmierung informatikaginformatikag..bildungbildung--rprp.de.de

Page 18: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

18 Prädikative Sprachen

Programmierung wird als Beweisen in einem Programmierung wird als Beweisen in einem System von Tatsachen und Schlussfolgerungen System von Tatsachen und Schlussfolgerungen angesehen angesehen

Es wir spezifiziert, was die Maschine tun soll, aber Es wir spezifiziert, was die Maschine tun soll, aber nicht, wie sie dies tun soll: nicht, wie sie dies tun soll: deklarativesdeklaratives statt statt prozedurales Programmierenprozedurales Programmieren

typische Sprachentypische Sprachen PROLOGPROLOG – – TrilogyTrilogy – – CLPCLP

AG-Material: AG-Material: Wissenverarbeitung mit PROLOGWissenverarbeitung mit PROLOG informatikaginformatikag..bildungbildung--rprp.de.de

Page 19: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

19 Objektorientierte Sprachen

Daten, Anweisungen und Regeln werden als Daten, Anweisungen und Regeln werden als ObjekteObjekte angesehen und als solche geeignet zusammengefasst.angesehen und als solche geeignet zusammengefasst.

Objekte Objekte tauschen Informationen über tauschen Informationen über NachrichtenNachrichten aus aus können auf Nachrichten mit verschiedenen können auf Nachrichten mit verschiedenen MethodenMethoden reagieren reagieren können dem Sender mit einem anderen Objekt antwortenkönnen dem Sender mit einem anderen Objekt antworten erben Fähigkeiten durch Zugehörigkeit zu einer erben Fähigkeiten durch Zugehörigkeit zu einer ObjektklasseObjektklasse

KlassenhierarchienKlassenhierarchien erlauben erlauben eine bequeme Behandlung von Sonderfälleneine bequeme Behandlung von Sonderfällen eine weitgehende eine weitgehende Wiederverwendbarkeit von ProgrammkodeWiederverwendbarkeit von Programmkode

typische Sprachentypische Sprachen SIMULASIMULA – – SmalltalkSmalltalk – – CC++++ –– DelphiDelphi –– JavaJava

Page 20: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

20 Literatur

Ludewig, J.Ludewig, J.Sprachen für die ProgrammierungSprachen für die Programmierung

BI Mannheim, 1985 BI Mannheim, 1985

Claus,V.Claus,V. – – Schwill, A.Schwill, A.Schülerduden „Die Informatik“Schülerduden „Die Informatik“

BI Mannheim, 1986BI Mannheim, 1986

Schalowski, R.Schalowski, R.ProgrammiersprachenProgrammiersprachen

Deutsche Telekom, Unterrichtblätter, 52/1999 S.634-641Deutsche Telekom, Unterrichtblätter, 52/1999 S.634-641

Page 21: Programmiersprachen I F B Pascal PROLOG CAML C ++ Ada Java LISP Referat zur Veranstaltung Informatik VI (18.635) StD G. Noll Rhein-Gymnasium Sinzig Februar.

© G. Noll 2001

21 Unterrichtsmaterial

Drumm, H. – Stimm, H.Drumm, H. – Stimm, H.Wissensverarbeitung mit PROLOGWissensverarbeitung mit PROLOG

Handreichung zum Lehrplan InformatikHandreichung zum Lehrplan Informatik

LMZ Koblenz, 1995LMZ Koblenz, 1995

Becker, K.Becker, K.Funktionale ProgrammierungFunktionale Programmierung

Materialien zum Lehrplan InformatikMaterialien zum Lehrplan Informatik

LMZ Koblenz, 1999LMZ Koblenz, 1999

Noll, G.Noll, G.Einführung in PROLOGEinführung in PROLOG

Referat zum Weiterbildungslehrgang InformatikReferat zum Weiterbildungslehrgang Informatik

IFB Speyer, 2001IFB Speyer, 2001


Recommended