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

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
m Podívejte se na Související články
Obrys (diskuse | příspěvky)
Bez shrnutí editace
Řádek 1: Řádek 1:
[[Deklarativní programování]] je postaveno na [[paradigma]]tu, podle něhož je [[Počítačový program|program]] založen na tom, co se počítá a ne jak se to počítá. Je zde deklarován vstup a výstup a celý program je chápán jako funkce vyhodnocující vstupy podávající jediný výstup.
[[Deklarativní programování]] je styl programování postavený na myšlence, kdy se v jazyce definuje '''co se má udělat''' a ne '''jak se to má udělat'''. Opakem tohoto principu jsou [[imperativní jazyky|imperativní programování]] popisující jednotlivé úkony pomocí [[algoritmus|algoritmů]].


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á posloupnost 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ů.
Například [[World Wide Web|webovské]] stránky jsou deklarativní protože popisují jak by stránka měla vypadat - titul, [[font]], text a obrázky - ale nepopisují jak konkrétně zobrazit stránky na obrazovce.


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]]...
[[Logické programování]] a [[funkcionální programování]] patří do deklarativního programování.

Další skupinu jazyků řazené mezi deklarativní jazyky tvoří [[jazyky pro řešení konkrétních problémů]] (Domain-specific programming language). 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]], [[HTML]] jazyk pro definici obsahu webové stránky nebo i konfigurační soubory určité aplikace.


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é [[XML]] bez definovaného [[DTD|doctype]] (významu dat).


== Související články ==
== Související články ==

Verze z 25. 6. 2007, 13:35

Deklarativní programování je styl programování postavený na myšlence, kdy se v jazyce definuje co se má udělat a ne jak se to má udělat. Opakem tohoto principu jsou imperativní programování popisující jednotlivé úkony pomocí algoritmů.

K deklarativnímu programování lze přistupovat dvojím způsobem. Tím prvním je použití jazyka ze skupin programovacích jazyků, které byly navrženy přímo pro deklarativní programování. Jsou to jazyky patřící mezi funkcionální programovací jazyky, 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á posloupnost 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í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 testy, např. JUnit, NUnit...

Další skupinu jazyků řazené mezi deklarativní jazyky tvoří jazyky pro řešení konkrétních problémů (Domain-specific programming language). Tyto jazyky bývají typicky turingovsky neúplné. Příkladem může být jazyk SQL pro manipulaci s daty v databázi, regulární výrazy, HTML jazyk pro definici obsahu webové stránky nebo i konfigurační soubory určité aplikace.


Deklarativní programovací jazyk, jako každý programovací jazyk, musí mít syntax a sémantiku. Z tohoto důvodu do této skupiny nelze zařadit obecné XML bez definovaného doctype (významu dat).

Související články

Šablona:Počítačový pahýl