La programmazione imperativa è un paradigma di sviluppo software in cui le funzioni sono codificate implicitamente in ogni fase richiesta per risolvere un problema. Nella programmazione imperativa, ogni operazione è codificata e il codice stesso specifica come risolvere il problema, il che significa che i modelli precodificati non vengono richiamati.
La programmazione imperativa richiede la comprensione delle funzioni necessarie per risolvere un problema, piuttosto che fare affidamento su modelli in grado di risolverlo. Il fulcro della programmazione imperativa è come risolvere il problema, che richiede una guida dettagliata passo dopo passo. Poiché il codice scritto esegue le funzioni anziché i modelli, il programmatore deve codificare ogni passaggio. I linguaggi di programmazione procedurale e orientata agli oggetti (OOP) rientrano nella programmazione imperativa, come C, C ++, C # e Java.
Programmazione imperativa e dichiarativa
La programmazione imperativa contrasta con la programmazione dichiarativa, in cui il modo in cui un problema viene risolto non è definito in modo specifico, ma si concentra invece su ciò che deve essere risolto. La programmazione dichiarativa fornisce una costante da controllare per assicurarsi che il problema sia risolto correttamente, ma non fornisce istruzioni su come risolvere il problema. Il modo esatto in cui il problema viene risolto è definito dall'implementazione del linguaggio di programmazione tramite modelli. La programmazione dichiarativa è anche chiamata programmazione basata su modello. I linguaggi di programmazione funzionale, specifico del dominio (DSL) e logico rientrano nella programmazione dichiarativa, come SQL, HTML, XML e CSS.
Un esempio semplificato per distinguere tra un approccio imperativo e dichiarativo è pensare di dare indicazioni stradali. Un approccio imperativo fornirebbe istruzioni passo passo su come arrivare a una determinata destinazione. Un approccio dichiarativo fornirebbe l'indirizzo della destinazione, senza preoccuparsi di come viene trovato.
I modelli da cui la programmazione dichiarativa ottiene le sue funzioni vengono creati tramite la programmazione imperativa. Poiché metodi migliori per le funzioni si trovano attraverso la programmazione imperativa, possono essere impacchettati in modelli su cui fare appello alla programmazione dichiarativa.