Ponieważ podstawowe założenia programowania imperatywnego są bardzo podobne lub bezpośrednio odwzorowane w sprzęcie komputerowym, większość dostępnych języków programowania jest imperatywna.
W językach imperatywnych można wyróżnić wiele wspólnych elementów. Instrukcje przypisania wykonują pewne zadanie na zlokalizowanych w pamięci danych i odkładają tam wynik działania na potrzeby późniejszych operacji. Języki wysokopoziomowe umożliwiają dodatkowo wykonywanie bardziej złożonych wyrażeń składających się z operacji arytmetycznych oraz całych funkcji. Instrukcje pętli umożliwiają wielokrotne wykonanie tego samego kodu - w zależności od potrzeb, "wielokrotność" może oznaczać pewną określoną z góry ilość powtórzeń lub wykonywanie do czasu spełnienia pewnych warunków. Instrukcje warunkowe wykonują pewien blok kodu tylko wtedy, kiedy spełniony jest określony warunek. W przeciwnym razie blok ten jest pomijany podczas wykonywania. Języki imperatywne zezwalają też na przekazanie sterowania do zupełnie innej części programu. Realizowane jest to poprzez bezwarunkowy skok zwany "goto" oraz wywołanie podprogramu (procedury).