• Keine Ergebnisse gefunden

StD G. Noll Programmiersprachen

N/A
N/A
Protected

Academic year: 2022

Aktie "StD G. Noll Programmiersprachen"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmiersprachen

I F B

PascalPROLOG

C ++ CAML

Ada Java

LISP

Referat zur Veranstaltung „Informatik VI“ (18.635)

StD G. Noll

Rhein-Gymnasium Sinzig

(2)

2

Sprache

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

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 falsch syntaktisch korrekt - semantisch falsch x:=yx:=y

syntaktisch korrekte Zuweisung, aber syntaktisch korrekte Zuweisung, aber

semantisch nur korrekt, wenn x und y vom gleichen Datentyp semantisch nur korrekt, wenn x und y vom gleichen Datentyp sindsind

(3)

3

Programmiersprachen

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

Algorithmen

Algorithmen stellen den Zusammenhang zwischen Algorithmen stellen den Zusammenhang zwischen Ein- und Ausgabedaten dar und sind

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

Programmiersprachen

(4)

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 Steuerungssprache

mit zugehöriger Steuerungssprache

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

wesentlichen Elementen moderner Programmiersprachen

Programmiersprachen

(5)

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

(6)

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 Mnemoniks

Mnemoniks 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

erleichtern erleichtern

(7)

7

Sprachen der 3. Generation

ein Mnemonik beschreibt mehr als einen ein Mnemonik beschreibt mehr als einen Maschinenbefehl

Maschinenbefehl

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

(8)

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

Benutzerfreundlichkeit, , WartungsfreundlichkeitWartungsfreundlichkeit, , Effizienz

Effizienz und und PortabilitätPortabilität zu achten zu achten

Konsequenz: Entwicklung von Konsequenz: Entwicklung von blockorientiertenblockorientierten Sprachen

Sprachen, 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 sind

sich alleine verifizierbar sind

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

(9)

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

(10)

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 Programmierung

Programmierung im im Software-EngineeringSoftware-Engineering

(11)

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 Maschine

Maschine))

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üssen Programmiersprache verzichten zu müssen

(12)

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

(13)

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

Umgebung oder eines CASE-Tools

vielfach herstellerabhängigvielfach herstellerabhängig

typische Sprachen typische Sprachen

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

(14)

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) geschrieben basierenden 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

(15)

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

(16)

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 Maschine Arbeitsweise einer hypothetischen Maschine

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

auf Speicherzellen

typische Sprachentypische Sprachen

FORTRAN FORTRAN ALGOLALGOL BASIC BASIC Pascal Pascal CC AdaAda

(17)

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

erfasst erfasst

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

definitionen und relevanten Funktionsaufrufen

typische Sprachentypische Sprachen

LISPLISPLogoLogoAPLAPLCAMLCAML

AG-Material: AG-Material: Funktionale ProgrammierungFunktionale Programmierung informatikag

informatikag..bildungbildung--rprp.de.de

(18)

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 Programmieren

prozedurales Programmieren

typische Sprachentypische Sprachen

PROLOGPROLOGTrilogyTrilogyCLPCLP

AG-Material: AG-Material: Wissenverarbeitung mit PROLOGWissenverarbeitung mit PROLOG informatikag

informatikag..bildungbildung--rprp.de.de

(19)

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

SIMULASIMULASmalltalkSmalltalk – CC++++ DelphiDelphiJavaJava

(20)

20

Literatur

Ludewig, J.Ludewig, J.

Sprachen für die Programmierung Sprachen 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, 1986 BI Mannheim, 1986

Schalowski, R.Schalowski, R.

Programmiersprachen Programmiersprachen

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

(21)

21

Unterrichtsmaterial

Drumm, H. – Stimm, H.Drumm, H. – Stimm, H.

Wissensverarbeitung mit PROLOG Wissensverarbeitung mit PROLOG

Handreichung zum Lehrplan Informatik Handreichung zum Lehrplan Informatik

LMZ Koblenz, 1995 LMZ Koblenz, 1995

Becker, K.Becker, K.

Funktionale Programmierung Funktionale Programmierung

Materialien zum Lehrplan Informatik Materialien zum Lehrplan Informatik

LMZ Koblenz, 1999 LMZ Koblenz, 1999

Noll, G.Noll, G.

Einführung in PROLOG Einführung in PROLOG

Referat zum Weiterbildungslehrgang Informatik Referat zum Weiterbildungslehrgang Informatik

IFB Speyer, 2001 IFB Speyer, 2001

Referenzen

ÄHNLICHE DOKUMENTE

Ziehen Sie das Objekt kleines Programm aus der Objektbibliothek in das Diagrammfenster (siehe Abbildung 3)..

Structured multiprogramming, concurrent programming languages, hierarchical operat,ing systems, concurrent processes, monitors, classes, abstract data types, access

A Concurrent Pascal program consists of a hierarchy of abstract data types (classes, monitors, and processes). An abstract data type can only be accessed through

(The only exception to this rule is a sequential program declaration within a process typel it may refer to routine entries defined later in the same process

The FORTRAN manual describes the FORTRAN language syntax and includes instructions for using the FORTRAN Compiler in the CTOS environment.. Additional topics

This section presents an overview and summary of the elements of the Pascal language and their function, as implemented for our version of Pascal. It briefly

When the function or procedure is called, an actual parameter substitutes for the formal parameter given earlier and takes the form of a variable, value, or

There are five general areas in which the UCSD implementation differs from other implementations of Pascal:. 1) String Handling: The type STRING has been added