Sie sind auf Seite 1von 21

Programmiersprachen

PROLOG
Pascal LISP
Ada
C ++ Java
CAML

IFB

Referat zur Veranstaltung „Informatik VI“ (18.635)

StD G. Noll
Rhein-Gymnasium Sinzig

Februar 2001
2
Sprache
 Eine Sprache besteht aus der Gesamtheit aller möglichen
Aussagen und deren Bedeutungen
 Syntax Regeln zum formalen Aufbau der Sätze
 Semantik Regeln über die Bedeutung der Sätze

„Dieser Satz hat vier Wörter.“


syntaktisch korrekt - semantisch falsch

x:=y
syntaktisch korrekte Zuweisung, aber
semantisch nur korrekt, wenn x und y vom gleichen Datentyp
sind
© G. Noll 2001
3
Programmiersprachen
 Computerunterstützte Problemlösungen basieren auf
Algorithmen
 Algorithmen stellen den Zusammenhang zwischen
Ein- und Ausgabedaten dar und sind
 eindeutig und ausführbar sowie
 endlich bezüglich Ausführungzeit und Beschreibung
 Das Problem der Übertragung von Algorithmen auf
Maschinen führte zur Entwicklung von
Programmiersprachen
© G. Noll 2001
4
Frühe Programmiersprachen
 Schickard (1623), Leibniz (1679) und Babbage
(1837) befassten sich bereits mit den Möglichkeiten
einer „Programmierung“
 Turing (1936) beschrieb eine theoretische Maschine
mit zugehöriger Steuerungssprache
 Zuse (1938) entwickelte ein sog. Plankalkül mit
wesentlichen Elementen moderner
Programmiersprachen

© G. Noll 2001
5
Maschinensprachen
 Programmiersprachen 1. Generation (1GL)
 alle Befehle direkt in der Sprache der CPU
 das Programm ist eine Folge aus 0 und 1
 bei fester Wortlänge enthält ein Befehl einen
 Operationsteil und einen

 Adressteil

 bessere Lesbarkeit durch Hexadezimalsystem

© G. Noll 2001
6
Assemblersprachen
 Programmiersprachen 2. Generation (2GL)
 für Operationskodes werden kurze Abkürzungen, die
Mnemoniks eingeführt
LDA lade den Akkumulator
ADD Addition
 ein Assembler als Übersetzer wird notwendig
 weitere Flexibilität durch symbolische Adressen, die
eine Verschiebung von Programmteilen im Speicher
erleichtern
© G. Noll 2001
7
Sprachen der 3. Generation
 ein Mnemonik beschreibt mehr als einen
Maschinenbefehl
 Verwendung besser lesbarer Schlüsselwörter
while not eof(f) do read(f,datensatz) end;
 typische Sprachen
 FORmular TRANslating system 1954
 COmmon Business Oriented Language 1959
 Beginners All purpose Symbolic Instruction Code 1962

© G. Noll 2001
8
Softwarekrise
 Mitte der 60er Jahre erkennt man die Notwendigkeit
bei Software auf Korrektheit, Zuverlässigkeit,
Benutzerfreundlichkeit, Wartungsfreundlichkeit,
Effizienz und Portabilität zu achten
 Konsequenz: Entwicklung von blockorientierten
Sprachen, die diese Qualitätskriterien unterstützen
 Blöcke sind kleinere Programmeinheiten, die für
sich alleine verifizierbar sind
 ALGOrithmic Language 1960 (Hoare, Wirth)
© G. Noll 2001
9
Merkmale von ALGOL
 Blockstruktur
 strenge Deklarationspflicht
 Gültigkeitsbereiche von Variablen
 zwei Arten der Parameterübergabe
 rekursive Prozeduren
 formatfreie Syntax
 Muttersprache der ALGOL-Familie
 Pascal  Modula  Oberon
 ALGOL68  Ada  C
© G. Noll 2001
10
Modulkonzept
 Sammlung von Datenstrukturen und
Zugriffsoperationen in Bausteinen mit
 Datenabstraktion und Information-Hiding
 getrennten Definitions- und Implementationsteilen
 strenger Schnittstellenüberwachung bereits zur
Übersetzungszeit
 der Möglichkeit parallele Prozesse zu programmieren

 Das Modulkonzept unterstützt die strukturierte


Programmierung im Software-Engineering
© G. Noll 2001
11
Systemprogrammierung
 Für die Programmierung von Betriebsystemen sind
Sprachen wie Pascal nicht besonders geeignet, da sie
hardwarenahe Zugriffe abschirmen (virtuelle
Maschine)
 Im Zusammenhang mit der Entwicklung von UNIX
entstand die Sprache C , in der eine
assemblerähnliche Programmierung möglich ist,
ohne auf die Vorteile einer höheren
Programmiersprache verzichten zu müssen

© G. Noll 2001
12
C
 geringer Sprachumfang
 beliebig ineinander konvertierbare Datentypen
 übliche Kontrollstrukturen
 Unterstützung von Nebeneffekten für eine kompakte
Formulierung und effiziente Kodierung. Deshalb oft
unverständlich:
 while(*ziel++ = *quelle++) ;
Zahlen aus quelle ins ziel schieben bis 0 auftritt

© G. Noll 2001
13
Sprachen der 4. Generation
 Schlüsselworte beschreiben komplexe Vorgänge
 readeach  lese alle vorhandenen Datensätze
 oft Bestandteil einer Software-Produktions-
Umgebung oder eines CASE-Tools
 vielfach herstellerabhängig
 typische Sprachen
 SQL und R/3 (SAP)

© G. Noll 2001
14
Sprachen der KI
 LISt Prozessing language
 bereits 1959 entwickelt, noch heute im Gebrauch
 Prototyp einer funktionalen Sprache
 besonders geeignet zur Symbolverarbeitung
 das CAS-Systeme Derive ist in einer auf LISP
basierenden Sprache (muLISP) geschrieben
 Logo
 um 1970 von Pappert aus LISP entwickelt
 enthält Kontrollsstrukturen
 Turtle-Graphik
 PROgramming in LOGic
© G. Noll 2001  Edinburgh um 1970
15
Sprachparadigmen
 Den Programmiersprachen liegen bestimmte
Konzepte oder Denkschemata zu Grunde, nach
denen man sie in Sprachparadigmen einordnet:
 imperative Sprachen
 funktionale Sprachen
 prädikative Sprachen
 objektorientierte Sprachen

© G. Noll 2001
16
Imperative Sprachen
 Programme bestehen aus Befehlssequenzen
(imperare = befehlen)
 Der Programmentwurf orientiert sich an der
Arbeitsweise einer hypothetischen Maschine
 Das Variablenkonzept orientiert sich an Operationen
auf Speicherzellen
 typische Sprachen
 FORTRAN – ALGOL – BASIC – Pascal – C – Ada

© G. Noll 2001
17
Funktionale Sprachen
 Problemrelevante Abhängigkeiten zwischen einer
gegebenen Ausgangssituation und einer gewünsch-
ten Endsituation werden mit Hilfe von Funktionen
erfasst
 Ein funktionales Programm besteht aus Funktions-
definitionen und relevanten Funktionsaufrufen
 typische Sprachen
 LISP – Logo – APL – CAML
 AG-Material: Funktionale Programmierung
informatikag.bildung-rp.de
© G. Noll 2001
18
Prädikative Sprachen
 Programmierung wird als Beweisen in einem
System von Tatsachen und Schlussfolgerungen
angesehen
 Es wir spezifiziert, was die Maschine tun soll, aber
nicht, wie sie dies tun soll: deklaratives statt
prozedurales Programmieren
 typische Sprachen
 PROLOG – Trilogy – CLP
 AG-Material: Wissenverarbeitung mit PROLOG
informatikag.bildung-rp.de
© G. Noll 2001
19
Objektorientierte Sprachen
 Daten, Anweisungen und Regeln werden als Objekte
angesehen und als solche geeignet zusammengefasst.
 Objekte
 tauschen Informationen über Nachrichten aus
 können auf Nachrichten mit verschiedenen Methoden reagieren
 können dem Sender mit einem anderen Objekt antworten
 erben Fähigkeiten durch Zugehörigkeit zu einer Objektklasse
 Klassenhierarchien erlauben
 eine bequeme Behandlung von Sonderfällen
 eine weitgehende Wiederverwendbarkeit von Programmkode
 typische Sprachen
© G. Noll 2001
 SIMULA – Smalltalk – C++ – Delphi – Java
20
Literatur
 Ludewig, J.
Sprachen für die Programmierung
BI Mannheim, 1985
 Claus,V. – Schwill, A.
Schülerduden „Die Informatik“
BI Mannheim, 1986
 Schalowski, R.
Programmiersprachen
Deutsche Telekom, Unterrichtblätter, 52/1999 S.634-641
© G. Noll 2001
21
Unterrichtsmaterial
 Drumm, H. – Stimm, H.
Wissensverarbeitung mit PROLOG
Handreichung zum Lehrplan Informatik
LMZ Koblenz, 1995
 Becker, K.
Funktionale Programmierung
Materialien zum Lehrplan Informatik
LMZ Koblenz, 1999
 Noll, G.
Einführung in PROLOG
Referat zum Weiterbildungslehrgang Informatik
© G. Noll 2001
IFB Speyer, 2001

Das könnte Ihnen auch gefallen