Deklarativní programování: Porovnání verzí
Smazaný obsah Přidaný obsah
m robot přidal: el:Δηλωτική γλώσσα προγραμματισμού |
m robot: typografické a kódové korekce a náhrady přesměrování podle specifikace |
||
Řádek 1:
[[Deklarativní programování]] je založeno na myšlence programování aplikací pomocí definic '''co se má udělat''' a ne '''jak se to má udělat'''. Opakem tohoto principu je [[imperativní jazyky|imperativní programování]] popisující jednotlivé úkony pomocí [[algoritmus|algoritmů]]. Zjednodušeně to lze popsat tak, že imperativní programy obsahují algoritmy, kterými se dosáhne chtěný cíl, zatímco deklarativní jazyky specifikují cíl a algoritmizace je ponechána programu (interpretu) daného jazyka.
== Odlišnosti ==
Řádek 9:
K deklarativnímu programování lze přistupovat dvojím způsobem. Tím prvním je použití jazyka ze skupin [[programovací jazyk|programovacích jazyků]], které byly navrženy přímo pro deklarativní programování. Jsou to jazyky patřící mezi [[funkcionální programování|funkcionální programovací jazyky]], [[logické programování|logické programovací jazyky]] a [[programovací jazyky s omezujícími podmínkami]]. V těchto jazycích se zpravidla definuje množina funkčních závislostí nebo pravidel. Po spuštění takového programu jsou vyhodnocovány vstupy těmito podmínkami. V programech nebývá důležité přesné pořadí jednotlivých pravidel, protože kód nebývá zpracováván lineárně tak, jak tomu bývá u imperativních programovacích jazyků.
Druhým přístupem je použití [[imperativní programování|imperativního jazyka]] s knihovnou pro podporu deklarativního programování. Jde vlastně jen o skrytí imperativních částí programového kódu a vlastní použití takovéto knihovny je v duchu deklarativního programování. Příkladem mohou být [[unit testing|unit testy]], např. [[JUnit]], [[NUnit]]
Další skupinu jazyků řazené mezi deklarativní jazyky tvoří [[domain-specific programing language]] neboli jazyky pro řešení konkrétního problému. Tyto jazyky bývají typicky [[turingův stroj|turingovsky]] neúplné. Příkladem může být jazyk [[SQL]] pro manipulaci s daty v databázi, [[regulární výraz
Deklarativní programovací jazyk, jako každý programovací jazyk, musí mít [[syntax]] a [[sémantika|sémantiku]]. Z tohoto důvodu do této skupiny nelze zařadit obecné [[Extensible Markup Language|XML]] bez definovaného [[DTD|doctype]] (významu dat).
Řádek 26:
<source lang="scheme">
(define (faktorial n)
(cond
[(> 1 n) 1]
[else (* n (faktorial (- n 1)))]
Řádek 75:
[[Kategorie:
[[de:Deklarative Programmierung]]
|