Obsah
Programovací paradigmata
Programovací paradigma představuje základní styl, vzor nebo filozofický přístup k návrhu a strukturování počítačového programu. Určuje, jakým způsobem programátor přemýšlí o řešení problému, jak definuje stav systému, jak s ním manipuluje a jak organizuje zdrojový kód. Různí se podle toho, jaké abstraktní koncepty a pravidla preferují.
Hlavní programovací paradigmata
1. Imperativní paradigma
Imperativní programování je založeno na příkazech, které říkají počítači *jak přesně* má provést konkrétní kroky a jakým způsobem má měnit stav paměti. Program je posloupnost instrukcí. * Procedurální programování: Odnož imperativního paradigmatu organizující kód do procedur, podprogramů a funkcí. * Typičtí zástupci: C, Pascal.
2. Objektově orientované programování (OOP)
Objektově orientované paradigma staví do středu zájmu objekty, které v sobě sdružují jak data (vlastnosti/atributy), tak kód, který s daty pracuje (metody). * Klíčové pilíře: Zapouzdření, dědičnost, polymorfismus a abstrakce. * Typičtí zástupci: Java, C++, Python, PHP.
3. Deklarativní paradigma
Na rozdíl od imperativního přístupu se deklarativní programování soustředí na to, *co* má být výsledkem, nikoliv na to, krok za krokem *jak* ho dosáhnout. Popisuje se požadovaný stav a systém sám rozhodne o postupu. * Typičtí zástupci: SQL (pro dotazování nad databázemi), HTML/CSS (pro popis vzhledu a struktury).
4. Funkcionální paradigma (FP)
Funkcionální programování vychází z matematických funkcí. Považuje výpočet za vyhodnocování funkcí a vyhýbá se změně stavu (mutabilitě) a sdíleným datům. * Klíčové principy: Čisté funkce (pure functions), neměnnost dat (immutability), funkce vyššího řádu. * Typičtí zástupci: Haskell, Scala, Elixir, moderní prvky v JavaScriptu či PHP.
Multi-paradigmata jazyky
Většina moderních programovacích jazyků již není striktně omezena na jediné paradigma. Například PHP, Python nebo JavaScript umožňují kombinovat objektově orientovaný, procedurální i funkcionální přístup podle toho, co nejlépe vyhovuje řešenému problému.
Související pojmy
* Data a programování * Objektově orientované programování * Funkcionální programování
development programming paradigms softwarearchitecture
