Programarea procedurală este uneori folosită ca sinonim pentru programare imperativă (specifică pașii care trebuie urmați de program pentru a se ajunge la starea dorită), dar se poate referi și la o paradigmă de programare bazată pe conceptul de apel de procedură. Procedurile, numite și rutine, subrutine, metode sau funcții (a nu se confunda cu funcțiile matematice, ci similare cu cele utilizate în programarea funcțională), conțin o serie de pași care trebuie executați. Orice procedură poate fi apelată la orice moment din execuția unui program, inclusiv de alte proceduri sau chiar de ea însăși.