Programmazione imperativa
Paradigma in cui si descrive come un programma deve essere eseguito, passo dopo passo. Il suo opposto è quello dichiarativo. C, Java, Python e JavaScript sono prevalentemente imperativi.
Caratteristiche: variabili che cambiano nel tempo, flusso di controllo (if/for/while), istruzioni esplicite. La programmazione strutturata (Dijkstra, 1968) è imperativa senza goto. La OOP è imperativa con gli oggetti. La programmazione funzionale è l'opposto: si concentra su espressioni e immutabilità. I linguaggi moderni sono spesso multi-paradigma: Rust, Swift e Python supportano entrambi gli approcci. «Imperative shell, functional core» è un pattern diffuso: I/O e stato restano imperativi, la logica è funzionale.