Deklarative Programmierung
 
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Der Begriff wird in der Literatur nicht einheitlich verwendet. Früher wurde er häufig als Synonym für logische Programmierung angesehen. Heute wird er zumeist [als Gegenbegriff] dem Begriff der imperativen Programmierung gegenübergestellt.

Unterschied zwischen deklarativer und imperativer Programmierung:

Beim deklarativen Ansatz steht das Was im Vordergrund, nicht das Wie. Es geht darum, zu ermöglichen, mit sprachlichen Konstrukten genau zu beschreiben, was berechnet werden soll, und nicht -wie beim prozedural-imperativen Ansatz- wie die "Rechnung" Schritt für Schritt durchzuführen ist.

Vorteile deklarativer Programmierung:

Beispiele für deklarative Programmiersprachen:
Diskussion

Man kann die deklarative Programmierung noch differenzieren in funktionale ("applikative") Programmierung einerseits und logisch/prädikative andererseits.

Entsprechend unterscheidet man dann zwischen sog. "funktionalen" Sprachen wie SpracheLisp, SpracheScheme, SpracheHaskell, SpracheML und logischen (bzw. prädikativen) wie z.B. SpracheProlog.

Im WardsWiki kann man dazu lesen:

A declarative programming language allows the programmer to specify what to do, not how to do it. DL's allow declarative programming.

There are flavours of decalarative language: Logic programming languages, relational programming languages and to a lesser extent functional programming languages.


Anmerkung: Nun gut, ich kann sehen, dass hier (ganz oben) die "deklarativer Programmierung" der "imperativen" gegenübergestellt wird/werden soll. Das stimmt wohl schon, so weit. Und macht wohl auch Sinn. Jedoch sollte man dabei -wie man es auch in der Literatur finden kann- auch noch die OO-Programmierung als 3.te "Spielart" gelten lassen; so dass man (erst mal) zu folgender Einteilung kommt (vgl. ProgrammierParadigmen):

Ein großer Teil aller wichtigen Programmiersprachen lässt sich dann ganz zwanglos in dieses Schema einteilen. Sehr viel Sprachen ordnen sich ja "selbst" explizit einer dieser Kategorien zu. - So heißt es z.B. auf der Haskell-Homepage: "Haskell is a computer programming language. In particular, it is a polymorphicly typed, lazy, purely functional language, quite different from most other programming languages."

Viele Sprachen haben natürlich auch Aspekte aus mehreren der oben angegebenen "Kategorien" implementiert bzw. in der Sprachdefinition umgesetzt: C++ wird z.B. (nur) deshalb als Hybridsprache bezeichnet, weil sie Merkmale einer klassisch prozeduralen/imperativen Sprache (SpracheCee) mit Merkmalen einer OO-Sprache (SpracheSimula) verbindet.


Jedoch sollte man dabei -wie man es auch in der Literatur finden kann- auch noch die OO-Programmierung als 3.te "Spielart" gelten lassen

In der Literatur kann man auch die Aussage finden, dass sich Objektorientierung orthogonal zu den anderen Paradigmen verhält, was mir wesentlich mehr einleuchtet, denn: Eine Sprache kann nur imperativ, oder nur funktional, oder nur prädikativ sein, aber nicht nur objektorientiert. Eine objektorientierte Sprache ist auch eine imperative oder eine funktionale oder eine prädikative Sprache (oder was es sonst noch gibt oder geben könnte). -- her


"Der Firmengründer versprach eine leichtere Entwicklung von Applikationen. Dazu zählt etwa das Konzept der deklarativen Programmierung auf der Grundlage der "Extensible Application Markup Language". (...) beschreibt der Anwendungsentwickler beim deklarativen Ansatz das zu lösende Problem, nicht aber die Art der Lösung."


Siehe auch "Rekursion und Iteration" ProgrammierParadigmen/Diskussion
KategorieProgrammierSprachenKonzepte
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 2. November 2003 14:13 (diff))
Suchbegriff: gesucht wird
im Titel
im Text