Programowanie deklaratywne — rodzina paradygmatów programowania, które nie są z natury imperatywne. W przeciwieństwie do programów napisanych imperatywnie, programista opisuje warunki, jakie musi spełniać końcowe rozwiązanie (co chcemy osiągnąć), a nie szczegółową sekwencję kroków, które do niego prowadzą (jak to zrobić). Programowanie deklaratywne często traktuje programy jako pewne hipotezy wyrażone w logice formalnej, a wykonywanie obliczeń jako ich dowodzenie. Programowanie deklaratywne jest szczególnym przedmiotem zainteresowania naukowców, gdyż dzięki minimalizacji lub eliminacji skutków ubocznych może znacząco uprościć tworzenie programów współbieżnych[1]. Paradygmat programowania deklaratywnego obejmuje szeroką gamę języków programowania i bardziej szczegółowych paradygmatów podrzędnych.

Definicja

Peter Van Roy oraz Serif Haridi podają następujące warunki, jakie musi spełniać program, aby mógł być uznany za deklaratywny[2]:

Istnieje kilka szczegółowych paradygmatów, które spełniają te warunki, różniących się sposobami ich osiągnięcia: programowanie funkcyjne, programowanie logiczne, programowanie ograniczeń.

Siła wyrazu

Wyróżniamy dwa rodzaje języków deklaratywnych[2]:

Przykłady języków

Przykładami programowalnych języków deklaratywnych są języki funkcyjne i logiczne takie, jak Ocaml, XSLT czy Prolog. Przykładem języka opisowego jest SQL służący do komunikacji z bazą danych, który sam w sobie nie jest zupełny w sensie Turinga.

Przypisy

  1. DAMP 2009: Workshop on Declarative Aspects of Multicore Programming. DAMP 2009, 20-01-2009. [dostęp 2012-02-25]. (ang.).
  2. a b Peter Van Roy, Serif Haridi: Concepts, Techniques, and Models of Computer Programming. MIT Press, 2004, s. 113-118. ISBN 978-0262220699. (ang.).