Man unterscheidet:
z.B.: Fortran (1958, Backus), Algol 60, Algol 68, Cobol, PL1, Pascal, Modula, ...
Wesentlich: |
Anweisungen (
|
[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!
z.B.: Lisp (1960, McCarthy), Scheme, ML, FP, Hope, Miranda, ...
Charakteristisch:
[Anm.: Manche "`funktionale Sprachen"' sind nicht rein funktional! ]
Vorbild: | Mathematik, speziell ![]() |
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.
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!)