• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Programowanie deklaratywne

    Przeczytaj także...
    OCaml znany pierwotnie jako Objective Caml to wielo-paradagmatowy język programowania oraz implementacja tego języka w postaci zestawu narzędzi i bibliotek.Przetwarzanie współbieżne (ang. concurrent computing) – przetwarzanie oparte na współistnieniu wielu wątków lub procesów, operujących na współdzielonych danych. Wątki uruchomione na tym samym procesorze są przełączane w krótkich przedziałach czasu, co sprawia wrażenie, że wykonują się równolegle.
    Programowanie logiczne (nazywane także programowaniem w logice lub programowaniem w języku logiki) to będąca odmianą programowania deklaratywnego metoda programowania, w której program podawany jest jako pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności.

    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. Paradygmat programowania deklaratywnego obejmuje szeroką gamę języków programowania i bardziej szczegółowych paradygmatów podrzędnych.

    HTML (ang. HyperText Markup Language) – hipertekstowy język znaczników, obecnie szeroko wykorzystywany do tworzenia stron internetowych.Hipoteza (gr. hypóthesis – przypuszczenie) – osąd, który podlega weryfikacji lub falsyfikacji. Zdanie, które stwierdza spodziewaną relację między jakimiś zjawiskami, propozycja twierdzenia naukowego, które zakłada możliwą lub oczekiwaną w danym kontekście sytuacyjnym naturę związku.

    Definicja[]

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

  • niezależny — wynik końcowy nie zależy od żadnego zewnętrznego stanu,
  • bezstanowy — nie posiada stanu wewnętrznego, który jest zachowywany między wywołaniami,
  • deterministyczny — dla takich samych argumentów wejściowych zawsze daje ten sam wynik.
  • 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 z ograniczeniami.

    Logika (gr. λόγος, logos – rozum, słowo, myśl) – wedle klasycznej definicji – nauka o sposobach jasnego i ścisłego formułowania myśli, o regułach poprawnego rozumowania i uzasadniania twierdzeń. Jako taka wraz z retoryką logika stanowiła część filozofii. Współczesna logika wykorzystując metodę formalną znacznie rozszerzyła pole badań włączając w to badania nad matematyką (metamatematyka, logika matematyczna), konstruowanie nowych systemów logicznych (np. logiki wielowartościowe), czysto teoretyczne badania o matematycznym charakterze (np. teoria modeli), zastosowania logiki w informatyce i sztucznej inteligencji (logic for computer science).SQL (ang. Structured Query Language wym. /ɛskjuːˈɛl/) – strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.

    Siła wyrazu[]

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

  • opisowe — opisuje wyłącznie struktury danych i spodziewany rezultat. Język taki najczęściej nie jest zupełny w sensie Turinga lub też osiąga zupełność w inny sposób. Deklaratywność służy przede wszystkim do zwiększenia czytelności lub łatwiejszego opisu pewnych zjawisk. Przykładem takiego języka może być HTML, który opisuje wygląd strony internetowej.
  • programowalne — język, którego deklaratywny model obliczeń jest zupełny w sensie Turinga.
  • 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.

    Programowanie funkcyjne (lub programowanie funkcjonalne) – filozofia i metodyka programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń.XSLT (ang. XSL Transformations, Extensible Stylesheet Language Transformations, w wolnym tłumaczeniu Przekształcenia Rozszerzalnego Języka Arkuszy Stylów) – oparty na XML-u język przekształceń dokumentów XML. Pozwala na przetłumaczenie dokumentów z jednego formatu XML na dowolny inny format zgodny ze składnią XML-a (np. na stronę WWW XHTML, wzór matematyczny MathML lub dokument biurowy ODF), jak również na zwykły HTML i czysty tekst.

    Przypisy

    1. DAMP 2009: Workshop on Declarative Aspects of Multicore Programming (ang.). DAMP 2009, 20-01-2009. [dostęp 25-02-2012].
    2. Peter Van Roy, Serif Haridi: Concepts, Techniques, and Models of Computer Programming. MIT Press, 2004, s. 113-118. ISBN 978-0262220699. (ang.)
    Programowanie imperatywne – paradygmat programowania, który opisuje proces wykonywania jako sekwencję instrukcji zmieniających stan programu. Podobnie jak tryb rozkazujący w lingwistyce wyraża żądania jakichś czynności do wykonania. Programy imperatywne składają się z ciągu komend do wykonania przez komputer. Rozszerzeniem (w sensie wbudowanych funkcji) i rodzajem (w sensie paradygmatu) programowania imperatywnego jest programowanie proceduralne.Paradygmat programowania (ang. programming paradigm) — wzorzec programowania komputerów przedkładany w danym okresie rozwoju informatyki ponad inne lub szczególnie ceniony w pewnych okolicznościach lub zastosowaniach.



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    Skutek uboczny lub efekt uboczny — w programowaniu dowolny efekt wyrażenia, lub wywołania funkcji, który wykracza poza zwrócenie wartości, np. interakcja z systemem operacyjnym, lub zmiana wartości zmiennej globalnej. Pomimo nazwy wiele funkcji jest wywoływana właśnie dla uzyskania skutku ubocznego.
    Prolog (od francuskiego Programmation en Logique) jest to jeden z najpopularniejszych języków programowania logicznego. Prolog powstał jako język programowania służący do automatycznej analizy języków naturalnych, jest jednak językiem ogólnego zastosowania, szczególnie dobrze sprawdzającym się w programach związanych ze sztuczną inteligencją. Prolog w przeciwieństwie do większości popularnych języków jest językiem deklaratywnym.

    Reklama