Neprogramátor/Imperativní a procedurální programování
Procedurální programování je imperativní. Obráceně to neplatí, protože je více způsobů imperativního programování, jako třeba objektově orientované programování.
Imperativní programování je založené na příkazech. Programátor říká počítači, co přesně má počítač vykonat. Příkazy mohou změnit stav vykonávaného programu (a světa obecně). Tomu se říká vedlejší jev (side effect).
Procedurální programování přidává imperativnímu programování strukturu – rozdělí příkazy na menší části, které pojmenuje. Pojmenované části mohou být součástí jiných pojmenovaných částí a je možné je vykonávat znovu a znovu.
Typickým příkladem procedurálního programování je, když čaroděj peče kefírový dort. Nejdříve dá do mísy polohrubou mouku, moučkový a vanilkový cukr, kypřicí prášek, kakao a namleté ořechy. Tím změní stav mísy – už není prázdná, ale obsahuje sypké ingredience. Potom vše v míse důkladně promíchá. Tím opět změní stav v míse. Čaroděj pokračuje přidáním kefíru a rostlinného oleje. Vedlejším jevem je, že ze sypké hmoty v míse se stane hmota mazlavá. Hmota se pak přelije do pekáče a ten se vloží do vyhřáté trouby. A to je opravdu velké množství vedlejších jevů – mísa je už zase prázdná, ale špinavá; pekáč je plný; trouba je nahřátá a plná.
Příkaz promíchej-mísu
použije čaroděj během pečení několikrát. I když je procedura míchání stejná, v míse je nakonec pokaždé něco jiného. Je to proto, že mezi mícháními se vykonápřidej-kefír
a přidej-olej
, jejichž vedlejším jevem je změna stavu mísy.
Navíc je procedura promíchej-mísu
spolu s procedurou dej-pekáč-do-trouby
a ostatními procedurami součástí jiné, větší – procedury upeč-kefírový-dort
.
Pro úplnost je potřeba dodat, že poleva se udělá z čokolády, másla a zakysané smetany a korpus se nejprve namaže marmeládou a teprve pak polevou.
◄ Deklarativní a funkcionální programování | Imperativní a procedurální programování | Objektově orientované programování ► |