Deklarative Programmiersprache

Deklarative Programmiersprache

Die deklarative Programmierung ist ein Programmierparadigma, bei dem die Beschreibung des Problems im Vordergrund steht. Der Lösungsweg wird dann automatisch ermittelt. Zu den deklarativen Programmiersprachen gehören:

Im Gegensatz zur imperativen Programmierung, bei der das Wie im Vordergrund steht, fragt man in der deklarativen Programmierung nach dem Was, das berechnet werden soll. Der Unterschied soll an folgendem populären Beispiel demonstriert werden.

Beispiel

Der Quicksort-Sortierungsalgorithmus kann in der imperativen Programmiersprache Pascal folgendermaßen aufgeschrieben werden:

procedure quicksort(l,r : integer);
var x,i,j,tmp : integer;
begin
  if r>l then
  begin
    x:=a[l]; i:=l; j:=r+1;
    repeat
      repeat  i:=i+1 until a[i]>=x;
      repeat  j:=j-1 until a[j]<=x;
      tmp:=a[j]; a[j]:=a[i]; a[i]:=tmp;
    until j<=i;
    a[i]:=a[j]; a[j]:=a[l]; a[l]:=tmp;
    quicksort(l,j-1);
    quicksort(j+1,r)
  end
end;

Der Programmierer beschreibt, wie der Algorithmus ablaufen muss. Es wird der Lösungsweg vorgegeben, also welche einzelnen Schritte nacheinander ablaufen und wie Variablen zu verändern sind, um schließlich zum Ergebnis zu kommen.

Derselbe Sortierungsalgorithmus könnte in der deklarativen Programmiersprache Haskell folgendermaßen formuliert werden:

quicksort [] = []
quicksort (x:xs) = quicksort [n | n<-xs, n<x] ++ [x] ++ quicksort [n | n<-xs, n>=x]

Der Programmierer beschreibt, was das Programm mit einer Eingabe macht, also wie mit welcher Eingabe umzugehen ist, wobei der Berechnungsablauf nicht von Interesse ist. Die Berechnungen erfolgen dann durch Wertemanipulation. Hauptkontrollstruktur bildet die Rekursion, insbesondere aus Effektivitätsgründen die Endrekursion.

Vorteile

  • Die Programme sind kürzer und leichter zu verstehen als vergleichbare imperative Programme.
  • Es gibt keine Nebenwirkungen aufgrund der referentiellen Transparenz. Programme sind damit partiell auswertbar und ermöglichen so z.B. die Behandlung unendlicher Datenstrukturen.
  • Beweise (z.B. Korrektheitsbeweis, Beweise über Programmeigenschaften) sind dank mathematischer Basis (u.a. Lambda-Kalkül) uneingeschränkt durchführbar.

Nachteile

  • Performanz: Der angegebene Quicksort-Algorithmus läuft in Pascal wesentlicher schneller als in Haskell und ist demnach für die Verarbeitung größerer Datenmengen besser geeignet.
  • Deklarative Programmierparadigmen stehen insbesondere imperativen und objektorientierten Paradigmen in ihrer Akzeptanz nach. Man spricht gern von sogenannten Akademiker-Sprachen.

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • deklarative Programmiersprache — ⇡ Programmiersprache …   Lexikon der Economics

  • Deklarative Sprache — Deklarative Sprachen sind eine Gruppe von Computersprachen auf der Basis von Funktionen und Operatoren (funktionale Programmiersprachen), logischer Kalküle (wie Lambda Kalkül, Prädikatenlogik) oder Datenflussgraphen. Den deklarativen Sprachen… …   Deutsch Wikipedia

  • Deklarative Programmierung — Die deklarative Programmierung ist ein Programmierparadigma, bei dem die Beschreibung des Problems im Vordergrund steht. Der Lösungsweg wird dann automatisch ermittelt. Zu den deklarativen Programmiersprachen gehören: funktionale Sprachen… …   Deutsch Wikipedia

  • Programmiersprache — Quelltext eines Programms in der Programmiersprache C++. Eine Programmiersprache ist eine formale Sprache, die zur Formulierung von Computerprogrammen verwendet wird. Die Anweisungen (Befehle) können dabei entweder in Maschinencode geschrieben… …   Deutsch Wikipedia

  • Programmiersprache Haskell — Haskell Basisdaten Paradigmen: funktional, nicht strikt, modular …   Deutsch Wikipedia

  • Programmiersprache — I. Begriff und Aufgabe:Eine P. ist eine künstliche Sprache zur Verständigung zwischen Mensch und ⇡ Computer. Sie ist durch ihre Syntax (⇡ Syntax einer Programmiersprache) und Semantik (⇡ Semantik einer Programmiersprache) definiert. In einer P.… …   Lexikon der Economics

  • Lustre (Programmiersprache) — Lustre ist eine synchrone deklarative Programmiersprache. Inhaltsverzeichnis 1 Geschichtliche Entstehung von Lustre 2 Einsatzgebiete von Lustre 3 Programm Struktur …   Deutsch Wikipedia

  • Oz (Programmiersprache) — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Imperative Programmiersprache — Imperative Programmierung ist ein Programmierparadigma. Ein imperatives Programm beschreibt eine Berechnung durch eine Folge von Anweisungen, die den Status des Programms verändern. Im Gegensatz dazu wird unter dem deklarativen… …   Deutsch Wikipedia

  • Logische Programmiersprache — Logische Programmierung (Prädikative Programmierung) ist ein Programmierparadigma, das auf der mathematischen Logik beruht. Anders als bei der imperativen Programmierung besteht ein Logik Programm nicht aus einer Folge von Anweisungen, sondern… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”