Überblick "`Höhere Programmiersprachen"'
Überblick "`Höhere Programmiersprachen"'
Man unterscheidet:
- imperative Programmiersprachen
z.B.: Fortran (1958, Backus), Algol 60, Algol 68, Cobol, PL1, Pascal, Modula, ...
Wesentlich: Anweisungen ( "`imperativ"' ) mit festgelegter Ausführungsreihenfolge (Kontrollstrukturen) ändern Programmvariable.
[Anm.: (Objektorientierte Sprachen sind eine Form imperativer Sprachen; spezielle Definitionstechnik für Datenstrukturen ermöglicht evolutionäre / wiederverwendende Programmierung.) ]
Vorbild imperativer Sprachen:
von-Neumann-Rechner = aktive Zentraleinheit führt Befehle aus, die Werte in passivem Speicher aktualisieren (lesen / schreiben) Wegen der Nähe zur klassischen Rechnerstruktur sind imperative Sprachen sehr effizient zu implementieren!
- funktionale Programmiersprachen
z.B.: Lisp (1960, McCarthy), Scheme, ML, FP, Hope, Miranda, ...
Charakteristisch:
- keine Anweisungen
- keine Variablen
- sondern: Programmierer definiert Funktion (abgestüzt auf andere Funktionen, Konstantenvereinbarungen, ...) und spezifiziert Ziele der Berechnung durch damit gebildeten Ausdruck
[Anm.: Manche "`funktionale Sprachen"' sind nicht rein funktional! ]
Vorbild: Mathematik, speziell -Kalkül; Auswertung von Ausdrücken durch Reduktion, d. h. schrittweise Transformation in die einfachste Form (= Wert). Keine direkte Entsprechung zur üblichen Rechnerstruktur;
Grundsätzlich schwieriger zu implementieren / weniger effizient;
Heute allerdings sehr gute (kompilierende) Implementierungen mit (bei vernünftigen funktionalen Programmen) der imperativen Welt vergleichbaren Leistungen.
- logische Programmiersprachen
insbesondere Prolog (1971, Colmerauer)
Charakteristisch: gewünschtes Ergebnis wird mit Mitteln der Logik (also relational) definiert und durch ein Beweisverfahren mit Hilfe einer Wissensbasis abgeleitet. Teil 2 von Programmieren III
funktionale Sprachen heißen auch applikativ, logische Sprachen auch deklarativ; (wobei letzterer Term auch für funktionale Sprachen benutzt wird!)
Next:Funktionale Sprachen - Was,Up:EinführungPrevious:Plan der Vorlesung Ronald Blaschke
1998-04-19