Deklarativní programování: Porovnání verzí

m
robot: typografické a kódové korekce a náhrady přesměrování podle specifikace
m (robot: typografické a kódové korekce a náhrady přesměrování podle specifikace)
[[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 ==
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|regulární výrazy]]y nebo třeba jazyk XSL pro manipulaci s XML daty.
 
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).
<source lang="scheme">
(define (faktorial n)
(cond
[(> 1 n) 1]
[else (* n (faktorial (- n 1)))]
 
 
[[Kategorie:programováníProgramování]]
 
[[de:Deklarative Programmierung]]
42 548

editací