Deklarativní programování

Deklarativní programování  je programovací paradigma, ve kterém je specifikována specifikace řešení problému, to znamená, že je popsán očekávaný výsledek, a nikoli způsob, jak jej získat. Opakem deklarativního je imperativní programování , ve kterém je na té či oné úrovni detailů vyžadován popis sekvence kroků k vyřešení problému. HTML a SQL jsou běžně uváděny jako příklady deklarativních jazyků .

Deklarativní programy nepoužívají pojem stavu, zejména neobsahují proměnné a operátory přiřazení , je zajištěna referenční transparentnost . Nejblíže „čistě deklarativnímu“ programování je psaní spustitelných specifikací . V tomto případě je program formální teorií a jeho provedení je zároveň automatickým důkazem této teorie.[ objasnit ] ( korespondence Curry-Howard ) a součásti vývojového procesu charakteristické pro imperativní programování ( design , refaktoring , ladění a další) jsou v tomto případě vyloučeny: program navrhuje a osvědčuje se[ upřesnit ] .

Deklarativní programování také často zahrnuje funkční a logické programování . Navzdory skutečnosti, že programy v takových jazycích často obsahují algoritmické komponenty, architektura v imperativním smyslu (jako něco odděleného od kódování) v nich také chybí: programové schéma je přímo součástí spustitelného kódu [1] .

Jazykově orientované programování je zaměřeno na zvýšení úrovně deklarativnosti .

„Čistě deklarativní“ počítačové jazyky jsou často Turingovy  neúplné, protože teoreticky není vždy možné vygenerovat spustitelný kód z deklarativního popisu. To někdy vede ke sporům o správnost termínu „deklarativní programování“ (méně kontroverzní je „deklarativní popis řešení“ nebo ekvivalentně „deklarativní popis problému“).

Poznámky

  1. Rozhovor se Simonem Peytonem Jonesem . Získáno 9. ledna 2016. Archivováno z originálu 12. ledna 2016.

Literatura

Odkazy