Imperativní programování je jedno z programovacích paradigmat, neboli způsobů, jak jsou v programovacím jazyku formulována řešení problémů. Imperativní programování popisuje výpočet pomocí posloupnosti příkazů a určuje přesný postup(algoritmus), jak danou úlohu řešit. Program je sadou proměnných, jež v závislosti na vyhodnocení podmínek mění pomocí příkazů svůj stav. Základní metodou imperativního programování je procedurální programování, tyto termíny bývají proto často zaměňovány.
Procedurální programování
Je to poddruh imperativního programování ale tyto názvy se často zaměňují. V procedurálním programování se program skládá z vícero procedur. Je to modernější přístup(vesměs veškeré současné programy jsou procedurální), protože umožňuje přehlednější a čitelnější kód. Druhým podtypem imperativního programování je objektově orientované programování.
Pro procedurální programování jsou typické for, while a if pro imperativní pak spíše goto.
Procedural
Object-oriented
procedure
method
record
object
module
class
procedure call
message
Programovací jazyk C
C je nízkoúrovňový, kompilovaný. Je dostatečně mocný na většinu systémového programování(ovladače a jádro OS), přičemž zbytek lze dořešit tzv. inline assemblerem, tedy metodou zápisu assembleru přímo do kódu. Zdrojový kód C je přitom mnohem čitelnější než assembler, je jednodušší ho zapsat a navíc je daleko snáze přenositelný na jiné procesory a počítačové architektury. Proto jsou často operační systémy, překladače, knihovny a interprety vysokoúrovňových jazyků implementovány právě v C.
Jazyk C byl vyvinut v Bell Labs mezi lety 1972 a 1973 D. Ritchiem.
Ukládání dat je v C řešeno třemi základními způsoby: statickou alokací paměti(při překladu), automatickou alokací paměti na zásobníku a dynamickou alokací na haldě(heap) pomocí knihovních funkcí. Jazyk disponuje jen minimální abstrakcí nad alokací: s pamětí se pracuje přes ukazatel, který drží odkaz na paměťový prostor daného typu proměnné, ale je na něm možné provádět aritmetické operace(tyto operace ale neoperují s ukazateli přímo na úrovni jednotlivých bajtů, nýbrž přihlíží k velikosti datového typu, na který ukazují – existují ale také ukazatele typu void *, které mohou odkazovat na jakýkoliv typ dat uložený v paměti.).
C - Obecná charakteristika
C je nízkoúrovňový, kompilovaný, relativně minimalistický programovací jazyk.
Univerzální programovací jazyk nižší až střední úrovně
Strukturovaný(funkce + data)
Zdrojový kód přenositelný(portable), nutno ctít podmínky přenositelnosti, překladač ne(je závislý na platformě)
Rychlý, efektivní, kompaktní kód, mnohdy nepřehledný
Pružný a výkonný, ale nestabilní
Podpora
konstrukcí jazyka vysoké úrovně(funkce, datové struktury)
Imperativní programování
Procedurální programování
Programovací jazyk C
C - Obecná charakteristika