**Imperatívne programovanie** je jeden zo spôsobov, ako sú v programovacom jazyku formulované riešenia problémov. Imperatívne programovanie  popisuje výpočet pomocou postupnosti príkazov a určuje presný postup (algoritmus), ako danú úlohu riešiť. Program je sadou premenných, takže v závislosti na vyhodnotenie podmienok mení pomocou príkazov svoj stav. Základnou metódou imperatívneho programovania je procedurálne programovanie.

Úvod
----

Väčšina hardwarových implementácií programovacích jazykov je u väčšiny počítačov imperatívna. Hardware potom aj tak ako variaci človek vykonáva príkaz za príkazom, presne ako to odpovedá imperatívnemu prístupu. Iba jednotlivé príkazy sú inštrukcie strojového kódu, k jeho vykonávaniu je hardware navrhnutý, a aktuálny stav vyjadruje obsah pamäti. Vyššie imperatívne jazyky potom používajú premenné a komplexnejšie príkazy (teda výrazy a funkcie), avšak stále vyznávajú to samé, imperatívne paradigma.

História
--------

Prvé imperatívne programovacie jazyky boli strojové jazyky jednotlivých počítačov. V týchto jazykoch boli iba veľmi jednoduché inštrukcie, čo umožňovalo veľmi ľahkú hardwarovú implementáciu, ale komplikovalo to možnosť vytvárať komplexné programy. Prvý jazyk, ktorý odstránil prekážky strojového kódu pre vytváranie komplexných programov, bol FORTRAN, vytvorený Johnom Backusom v spoločnosti IBM v roku 1954. FORTRAN priniesol možnosti (napríklad pomenovanie premenných, zložené výrazy, podprogramy a mnohé ďalšie veci), ako sú súčasti imperatívnych jazykov dodnes. 

Následujúce dve desaťročia priniesli ďalšie významné vyššie programovacie jazyky. Ku koncu 50. rokov a v 60. rokoch sa objavil jazyk ALGOL, pomocou ktorého išlo ľahko programovať matematické algoritmy. Jazyky COBOL (1960) a BASIC (1964) potom boli pokusom prispôsobiť syntax programovacej syntaxi prirodzeného jazyka – angličtine. V 70. rokoch bol Niklausom Wirthom navrhnutý jazyk Pascal. Wirth sa potom ďalej zaoberal jazykmi Modula-2 a Oberon. Koncom 60. rokov vznikol prvý objektový jazyk, Simula. Pre potreby amerického ministerstva obrany začali v roku 1978, po 4 rokoch sumarizovania požiadaviek, začali Jean Ichbiah a tým z Honeywellu vyvíjať jazyk Ada. Špecifikácia bola prvýkrát publikovaná v roku 1983, opráv sa potom dočkala v rokoch 1995 a 2005/6.

V 80. rokoch vzrástol záujem o objektovo orientované programovanie. Vznikajúce jazyky potom vyznávali imperatívny štýl, ale pridávali podporu objektov. Počas posledných dvoch desaťročí 20. storočia ich vzniklo značné množstvo. Bjarne Stroustrup vyvinul jazyk C++, objektovo orientovanú verziu známeho jazyka C. C++ bol prvýkrát implementovaný v roku 1985. Na konci 80.rokov a v 90. rokoch potom vzniklo veľké množstvo imperatívnych jazykov založených na konceptoch objektovo orientovaného programovania. Z významných napríklad Perl (Larry Wall, 1987), Python (Guido van Rossum, 1990) a Java (Sun Microsystems, 1994)

Imperatívne programovacie jazyky
--------------------------------

A
* ABC
* ALGOL
* ALGOL 68
* ALGOL W
* Ada
* Alma-0
* Atlas Autocode

B
* Baltazar
* Baltík
* Boo
* Borland Delphi

C
* C
* COMAL
* Common Lisp

D
* Dexterity programming language
* Dialog Manager
* DotOrg

F
* FLACC
* Fortran

G
* GNU Pascal
* Geometric Description Language
* Glagol

J
* JAVA

K
* Kaleidoscope
* Karel

M
* ML
* MLton
* Met English
* Modula

N
* Nemerle

O
* Oberon-1
* Occam

P
* PHP
* PL/0
* PL/C
* PL/I
* PL/M
* Parser
* Pascal
* Pascal/mt
* Prospero Pascal

Q
* QBasic

R
* Rapira
* Rc
* Roadsend PHP

S
* SCAR
* SPARK
* Speedcoding
* Standard ML
* Standard ML of New Jersey

V
* Visual Basic

X
* XHarbour
* XPL

Z
* Zeno
* Zonnon

Pozri aj
--------

* Premenná
* Deklaratívne programovanie
* Objektovo orientované programovanie
* Logické programovanie
* Funkcionálne programovanie

Zdroje
------

* Skoupil, D.; *Úvod do paradigmat programování*. Katedra matematické informatiky, Olomouc, 1994. TR-CS-94-01.
* Abelson, H. – Sussman, G.J.; *Structure and Interpretation of Computer Programs*. The MIT Press, Cambridge, Massachusetts, 1985. ISBN 0-262-01153-0.
* Dybvig, R. K.; *The Scheme Programming Language*. Prentice Hall, A Simon and Schuster Company, Upper Saddle River, New Jersey, 1996.
* Felleisen, M. – Findler, R.B. – Flatt, M. – Krishnamurthi, S.; *How to Design Programs: An Introduction to Computing and Programming.* The MIT Press, Cambridge, Massachusetts, 2001.
* Manis, V.S. – Little, J.J.; *The Schematics of Computation*. Prentice Hall, Englewood Cliffs, New Jersey, 1995. ISBN 0-13-834284-9.
* Springer, G. – Friedman, D.P.; *Scheme and the Art of Programming*. The MIT Press, Cambridge, Massachusetts, 1994. ISBN 0-262-19288-8.
* *Tento článok je čiastočný alebo úplný preklad článku Imperativní programování na českej Wikipédii.*